如何根据iframe的网址是否更改来更改父网页网址?

时间:2015-04-30 12:04:25

标签: javascript jquery iframe surveymonkey

我有调查猴子调查,在我做出选择并点击提交后,我注意到页面网址发生了变化。我知道,由于相同的原始政策,我在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");
}

如果代码太多,那么代码的许多道歉都会闻到,但我该如何让它工作?

1 个答案:

答案 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!'