当我尝试从iFrame内部调用父页面上的函数时出现IE8错误

时间:2011-01-26 21:07:21

标签: javascript iframe internet-explorer-8

我的父页面的代码如下:

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

该页面的iFrame编码如下:

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

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

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

在FireFox和Chrome中,这一切都运行正常,但在IE8中,我收到此错误消息:

  

Object不支持此属性或方法

我做错了什么?

3 个答案:

答案 0 :(得分: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必须与父级的网址完全匹配。

答案 1 :(得分:1)

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

您是否尝试将父函数定义为

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

我只想猜测为什么IE会因此而失败。也许全局函数不会自动绑定到IE中的window

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

答案 2 :(得分:0)

我有类似的问题。

我试图访问父iframe中定义的变量 <script type="text/javascript" src="example.js"/>文件没有成功,但当我将变量定义移动到<script type="text/javascript"> var myVar = ""</script>中iframe的主体时,一切正常。