使用JavaScript比较来自两个不同HTML文件的值[关闭]

问题描述 投票:0回答:2

我有两个HTML文件,一个名为index.html,另一个名为index1.html,如下所示:

的index.html

function updateData() {
  var Old_Data = document.getElementById("Old_Data").value;
  var New_Data = load('index1.html');

  if (Old_Data == New_Data) {
    window.alert(Old_Data)
  }
}
<html>

<head>
  <title>
    My HTML file
  </title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.js"></script>
</head>

<body onload="javascript: setInterval(updateData, 5000)">
  <div id='Old_Data'>abcd 100</div>
</body>

</html>

index1.html

abcd 1000

目标基本上是,我的JS必须比较那些2个html文件中的选定值,并在Window中显示一些消息。

但是,上面的代码显然不起作用。

有人可以指出我做错的地方。

感谢您的输入

新的index.html基于PSK的建议

我的新index.html如下所示:

<html>
<head>
    <title>
    My HTML file
    </title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.js"></script>
    <script>
        function updateData() {
          var Old_Data = document.getElementById("Old_Data").innerHTML;                    
          var xhr= new XMLHttpRequest();
          xhr.open('GET', 'index1.html', true);
          xhr.onreadystatechange= function() {
                 if (Old_Data != this.responseText) {
                      window.alert(Old_Data)
                  }
            };

       }
    </script>

</head>


<body onload="javascript: setInterval(updateData, 1000)">
    <div id = 'Old_Data'>abcd 100</div>
</body>
</html>

我尝试在我的本地服务器上,但仍然没有显示弹出窗口。

javascript html
2个回答
1
投票

我不确定你想要实现什么,但你实施的是什么有缺陷。

代码问题:

1 - 要获得DIV的内容,您需要使用innerHTML而不是value

2- load('index1.html');不是一个函数,要获取html的数据,你需要使用XMLHttpRequest来获取文件内容。

您的代码应该如下。

function updateData() {
          var Old_Data = document.getElementById("Old_Data").innerHTML;                    
          var xhr= new XMLHttpRequest();
          xhr.open('GET', 'index1.html', true);
          xhr.onreadystatechange= function() {
                 if (Old_Data == this.responseText) {
                      window.alert(Old_Data)
                  }
            };
       }

0
投票

load()函数未在脚本中定义。您需要先定义它。注意:jquery load()函数需要一个容器div来加载内容。

<html>

    <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.js"></script>


      <title>
        My HTML file
      </title>
       <script>
            function updateData() {
                  var Old_Data = document.getElementById("Old_Data").value;
                  var New_Data = $("#container").load('index1.html');
                  if (Old_Data == New_Data) {
                      window.alert(Old_Data)
                   }     
            }
        </script>
    </head>

    <body onload="javascript: setInterval(updateData, 5000)">
      <div id='Old_Data'>abcd 100</div>
      <div id="container"></div>


    </body>

    </html>

另请注意:这在本地浏览器上不起作用,因为XMLHttpRequest无法加载 - 这并不意味着它不起作用。您必须使用服务器/域来调试它。希望有所帮助..

© www.soinside.com 2019 - 2024. All rights reserved.