我有调查猴子调查,在我做出选择并点击提交后,我注意到页面网址发生了变化。我知道,由于相同的原始政策,我在iframe中对use jQuery to figure out if a submit occurred的原始想法是行不通的。 JSFiddle代码如下:
jQuery(document).ready(function(){
var title = 'Thank you for completing our survey!';
if($('#surveyMonkeyInfo').contents().find("div.embed_title").val() == title){
window.location.replace("http://stackoverflow.com");
}
setTimeout(arguments.callee, 1000);
})
然后我想,如果相反我使用jQuery来查看iframe中的url是否被更改,虽然我没有得到一个错误,其中潜在原因是SOP相关的,它根本不起作用,没有任何反应当iframe的url发生变化时。
surveyMonkeyInfo.onbeforeunload = function () {
window.location.replace("http://stackoverflow.com");
}
如果代码太多,那么代码的许多道歉都会闻到,但我该如何让它工作?
答案 0 :(得分:0)
如果iframe是您网页中唯一的iframe。 您可以使用以下方法检查当前网址:
window.frames[0].location.href;
但是,查看iframe是否加载其他网址的简单方法,这应该有效:
<iframe src="http://www.google.com/" onLoad="alert('Test');"></iframe>
onLoad将触发每个网址更改。
编辑:
你最好用你自己的例子进行测试,因为我不能给你一个关于小提琴的工作例子,因为它有跨源问题。如果iframe位于同一个域中,您应该可以使用以下命令jQuery the Dom:
window.frames[0].$('#surveyMonkeyInfo').contents().find("div.embed_title").val() == 'Thank you for completing our survey!'