如何在chrome浏览器中调用父窗口函数?

嗨,我惊奇地发现在Chrome浏览器中调用窗口父javascript函数时出现问题。 如果我有一个窗口,其中定义了javascript函数

 function dolink() { . . . }  

我在该窗口中有一个使用jquery进行此调用的iframe

  $(function() { $('a.arglink').click(function() { window.parent.dolink($(this).attr('href')); return false; }); });  

dolink函数的调用不起作用。 使用chrome javascript调试器步进,似乎window.parent.dolink 未定义 。 这是设计还是我犯的错误? 在Firefox和IE中,它工作正常。

终于找到了!

Chrome浏览器似乎不允许引用父窗口访问带有文件: protocol的页面。 事实上,我在上面的代码中测试了我的机器上的文件,所以使用类似file:///C:/mytests/mypage.html 。 如果我将该页面放在Web服务器中,它将按预期工作。

你应该调用这样的代码

 if(function != undefined) { $(function() { $('a.arglink').click(function() { window.parent.dolink($(this).attr('href')); return false; }); }); } 

那么使用frameElementownerDocument

  

我只是简单地做了这个,它对我有用

在iframe

 function sendToParent() { parent.doSomething(); } sendToParent(); 

在父母

 function doSomething() { alert('did it!') }