我有一个应用程序创建 HTML 供用户在他们的本地机器上查看(不是作为网站托管)。这目前适用于 IE 和 FireFox,但 Chrome 不喜欢我使用相互交互的框架(因此,当您单击一个项目时,我将一个新的 html 文件加载到内容框架中的导航框架)。Chrome 给了我不安全的 javascript 尝试 - 域必须匹配等。所以我创建了一个小示例,它在同一目录中包含所有必需的文件(并且应该在同一个域中?),但我仍然遇到问题。
我的示例代码在起始 html 页面中有 2 个 iFrame,第一个 iFrame 有一个按钮,可以更改第二个 iFrame 的源 - 相当简单。
我试过使用沙盒属性,但这些都没有帮助。
所以这是我的代码:
开始.htm
<body>
<iframe id="fheader" src="NewHeader.htm" name="fheader" sandbox="allow-scripts allow-same-origin allow-forms allow-top-navigation"></iframe>
<iframe id="fbody" src="BodyLime.htm" name="fbody" sandbox="allow-scripts allow-same-origin allow-forms allow-top-navigation"></iframe>
</body>
头文件.htm
function myClick() {
var myFrame = parent.document.getElementById("fbody");
myFrame.setAttribute("src", "BodyRed.htm");
}
<body style="background-color:Aqua">
<input id="Button1" onclick="myClick()" type="button" value="Change your neighbours colour"/>
</body>
BodyRed.htm 和 BodyLime.htm 只是设置了背景颜色以显示代码是否有效的简单页面。
我也尝试使用下面的代码访问框架,但是一旦我尝试访问框架的任何属性,我就会得到同样的错误:
var myfbody = parent.fbody;
希望有人可以提供帮助。