2011-01-26 93 views
2

我有一个父页面编码这样的函数内部调用父页面上的功能:IE8错误,当我尝试从一个iFrame

function testfunction() { 
    alert('hi'); 
} 

该网页已经iFrame的编码是这样的:

<iframe src="testinside.htm"></iframe> 

Testinside.htm有这个链接,父页上调用该函数:

<a href="#" onclick="parent.testfunction();">Test</a> 

在Firefox和Chrome ,这一切都工作得很好,但在IE8,我得到这个错误信息:

对象不支持此属性或方法

我做了什么错?

回答

1

你试过window.parent.testfunction()?我似乎回想起类似的问题。

您是否尝试过定义父功能

window.testfunction = function(){}...

我只是想在IE浏览器为什么会失败这一猜测。也许全局函数不会自动绑定到IE中的window

如果你不能解决这个问题,你可以尝试从父母到孩子的轮询,等待hasBeenClicked方法返回true

+0

我有一个偷偷摸摸的怀疑,“父”只引用父框架,而不是父框架的全局对象。如果这不起作用,请尝试`window.parent.window.testfunction()` – 2011-01-26 21:26:15

+0

遗憾的是,我也尝试过。不过,我会尝试window.parent.window.parent。 – 2011-01-26 22:01:44

3

尝试更改脚本部分:

<script type="text/javascript"> 
    function testfunction() { 
     alert('hi'); 
    } 
</script> 

和iframe来:

<iframe src="http://www.psychiatrist.com/psychstalk/test/testinside.htm"></iframe> 

然后确保你这个网址加载测试:

http://www.psychiatrist.com/psychstalk/test/test.htm 

对于一些因为脚本必须键入“text/javascript”才能工作。下一个问题是跨域问题。 iframe src必须完全匹配父级的网址。

0

我有一个类似的问题。

我试图访问父iframe中定义
<script type="text/javascript" src="example.js"/>文件没有成功的变量,但是当我移动的变量定义成iframe的身体<script type="text/javascript"> var myVar = ""</script>所有的作品。

相关问题