我试图使用此代码:
document.write('<iframe id="frame" src="' + window.location.href + '"><script>setInterval(function ()/{document.getElementById("frame").contentWindow.location.reload();},10000);</script>');
&#13;
<p>an example page</p>
&#13;
');
追加到页面的末尾。
答案 0 :(得分:1)
所以,虽然我仍然不清楚你正在尝试解决这个问题,而你的问题还不清楚(回想起来),我很好奇我们如何在不创建无限循环的情况下解决这个问题
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
<h1 id="h1"></h1>
<script type="text/javascript">
document.getElementById('h1').textContent = window.location.search;
</script>
<script type="text/javascript">
if (window.location.hash === '#origin') {
var ifr = document.createElement('iframe');
var props = {
src: window.document.location.href + '?r=0',
width: 500,
height: 300,
style: "border:1px solid red;width:500px;height:300px;"
}
for (var key in props) {
ifr.setAttribute(key, props[key]);
}
document.body.appendChild(ifr);
setInterval(function(){
var s = ifr.src.split('?r=')[0];
ifr.setAttribute('src', s + '?r=' + parseInt( Math.random() * 1000000))
console.log(ifr.src);
// you can skip this, but it illustrates the refreshes
document.getElementById('h1').textContent = ifr.src;
}, 2000);
}
</script>
</body>
</html>
因为它们是同一个而不能工作,所以我认为在原始页面上会使用哈希,从子项中省略它以区分它与自己的克隆。
test.html
你必须自己运行它,代码片段不喜欢它的重定向尝试,我不能不同意......, - NB:只在Chrome中运行它,但在其他地方应该有很多不同之处
此外,为了清楚起见,如果您将其保存为path/to/your/file/test.html?r=378426#origin
,那么您应该将其作为setInterval()
运行
答案 1 :(得分:0)
使用了一个关于如何处理查询字符串的快捷方式,但它的要点就在这里。
创建一个iframe对象,添加其属性然后添加到DOM,最后每隔一段时间用新的查询字符串重新加载页面
var ifr = document.createElement('iframe');
var props = {
src: 'http://example.com/?r=0',
width: 500,
height: 300,
style: "border:1px solid red;width:500px;height:300px;"
}
for (var key in props) {
ifr.setAttribute(key, props[key]);
}
document.body.appendChild(ifr);
setInterval(function(){
var s = ifr.src.split('?r=')[0];
ifr.setAttribute('src', s + '?r=' + parseInt( Math.random() * 1000000))
console.log(ifr.src);
}, 10000);