没错,这很奇怪。我已经进行了大量的谷歌搜索,发现了数百篇似乎为我指明了正确方向的文章,但似乎没有一个有效。
这是我正在尝试做的最新版本:
父页面
<html>
<head>
<script>
$('#mainWindow').ready(function () {
$('#mainWindow').contents().find('#clickThis').live('click', function () {
alert('Click detected!');
});
});
</script>
</head>
<body>
<iframe id="mainWindow" name="mainWindow" src="myMainPage.aspx" style="border: 0; position:fixed; top:0; left:0; right:0; bottom:0; width:100%; height:100%"></iframe>
<iframe src="myOtherPage.aspx"></iframe>
</body>
</html>
框架页面(位于主窗口中)
<html>
' LOADS OF STUFF INCLUDING:
<li id="clickThis">Click This</li>
</html>
所以很明显我在这里要做的是在用户单击子框架中的按钮时在父页面中运行一些代码。
它需要工作live
,因此如果框架中的页面发生更改,它仍会被父级捕获(此元素存在于将加载到框架中的所有页面上)
在各种其他搜索之后,我已经能够跨 iFrame、从父级到 iFrame 以及从 iFrame 到 iFrame 运行代码,但是从 iFrame 到父级运行会导致问题。
上面的代码什么都不做,我尝试过的任何其他选项也没有!
*编辑应该添加,所有文件都在同一台服务器上,跨域问题不是问题