我有一个iframe。我想在Javascript中创建一个监视iframe网址的循环。所以我想要的是这样的:
while(1){
if(iframe.src == "foo"){
iframe.src = "bar"
}
}
正确的方法是什么(理想情况下没有jQuery等)?
答案 0 :(得分:0)
如果你有一个无限循环,你必须使用break来手动停止它:
while (1) {
if(...) {
...
break; //exit loop
}
}
这是你想问的吗?随意提出任何进一步的问题。
修改强>
我选择的解决方案是创建一个自己的事件来监听,并在需要时触发事件:
var iframeSrcChangeEvt = new Event("iframeSrcChanged"); //create event
document.querySelector("iframe").addEventListener("iframeSrcChanged",function() { //add event listener to the iframe
this.src = "bar"; //change src as you need it
this.removeEventListener("iframeSrcChanged"); //remove listener if fired
clearInterval(monitorIframe); //stop monitoring the iframe
});
var monitorIframe = setInterval(function() { //set an interval to monitor the iframe
var iframe = document.querySelector("iframe");
if(iframe.src == "foo") {
iframe.dispatchEvent(iframeSrcCHangeEvt); //fire event
}
},500);
我认为此解决方案更好,因为如果您调整该代码,您可以添加多个iframe进行监控。