访问动态创建的跨域iFrame中的元素



我想访问iFrame中的元素,但由于调用iFrame的方式,我没有成功。

这是目标页面(www1.k9webprotection.com/…)。

iframe在不同的子域上:

<iframe src="http://license.k9webprotection.com/..." ...></iframe>

为加载iframe时设置超时或事件侦听器没有帮助。

这两个文档都放在不同的(子)域上,默认情况下它们不能通过javascript进行交互。

必须将两个文档的domain设置为相同的值。

将其放在两页的<head/>中的某个位置:

<script  type="text/javascript">
document.domain='k9webprotection.com'
</script>

然后等待iframe的onload-事件,您应该能够从父页面访问iframe内的文档(反之亦然)。

GreaseMonkey的示例脚本(简单地覆盖iframe的主体):

// ==UserScript==
// @name        k9
// @namespace   k9
// @include     http://www1.k9webprotection.com/get-k9-web-protection-free
// @include     http://license.k9webprotection.com/license.jsp*
// @version     1
// @grant       none
// ==/UserScript==

document.domain= 'k9webprotection.com';
if(self===top){  
  try{
    $('iframe.getk9iframe').load(function(){
       $('body',this.contentDocument)
        .text('gotcha')
          .css({background:'red',fontSize:'3em'});
    });
    alert("I'm the document in the top-window");
  }
  catch(e){}
}

相关内容

  • 没有找到相关文章

最新更新