我有两个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>
我尝试在我的本地服务器上,但仍然没有显示弹出窗口。
我不确定你想要实现什么,但你实施的是什么有缺陷。
代码问题:
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)
}
};
}
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无法加载 - 这并不意味着它不起作用。您必须使用服务器/域来调试它。希望有所帮助..