0

我已经看过有关此的其他帖子,但是由于某种原因,以下方法不起作用。

onclick="parent.testing();" 

现在来看完整的故事。我有一个包含所有 JS 文件的 index.html。同样在索引中,我有一个空的“div”标签。使用 jQuery,我将 page1.html 文件附加到空的“div”。所以索引有点像这样:

<html>
<head>
<script files>
<script>
ready { function testing(){do stuff;} }
</script>
</head>
<body>
<div><iframe src="page1.html" (added via jQuery)></div>
</body>
</html>

现在在 page1.html 文件中,我试图在单击链接时调用一个函数。但我收到以下错误:

Uncaught TypeError: Cannot call method 'testing' of undefined 

我也尝试了以下方法,但没有奏效:

onclick="window.testing();"
onclick="window.frames[0].testing();" 
4

2 回答 2

1

您的父页面脚本不是有效的 JavaScript,但假设ready { ... }

<script>
ready { function testing(){do stuff;} }
</script>

...是一种简化,应该表示您在该就绪处理程序中声明testing()为本地函数的文档就绪处理程序,因此只能从该就绪处理程序中访问它。您需要testing()在父页面中进行全局设置:

<script>
$(document).ready({ /* your on ready stuff here */ });

function testing(){ /* do stuff; */ }
</script>

...然后您应该可以使用 iframe 从 iframe 调用它parent.testing()

于 2012-08-23T22:10:15.643 回答
0

如果我理解你的问题,你的问题是你的函数没有被调用,对吧?所以也许一个解决方案是将它放在你的“page1.html”中

<script type="text/javascript" src="your_js_file"></script>
于 2012-08-23T22:02:05.507 回答