我想从另一个框架调用一个函数,但我似乎无法通过dom旅行吗?难道我做错了什么?如何访问内部框架Html?
indes.html代码:
<frameset rows="25%, 75%">
<frame src="top.html"></frame>
<frameset cols="50%, 50%">
<frame src="frame_left.html" name="left_frame">
<frame src="frame_right.html" name="right_frame">
</frameset>
</frameset>
中的top.html我:
<body>
<h1>Top Frame</h1>
<button onclick="clicked()">Click me !</button>
<script type="text/javascript">
function clicked() {
console.log("you clicked");
console.log(top.frames["left_frame"].left());
}
</script>
</body>
frame_left.html我:
<body>
<h3>Frame left</h3>
<script type="text/javascript">
function left() {
console.log("You called the left function from left frame");
}
</script>
</body>
我得到这个错误:
top.html:12未捕获SecurityError:Bl将原始“null”的框架锁定到访问源为“null”的框架。协议,域和端口必须匹配。
你如何在浏览器中调用这些测试页面 - 通过HTTP,还是通过文件协议?错误消息表明它可能是后者。我建议你为开发和测试设置一个本地Web服务器(类似于WAMP/MAMP,适合初学者)。 – CBroe
不,它只是简单的html。使用chrome打开文件。是不是可以通过DOM操作来访问它? @CBroe – Beto
如果您只是将它们作为本地文件打开,许多浏览器在涉及JavaScript可以执行的操作时将应用更严格的规则。我非常确定,一旦你通过HTTP调用这些页面,问题就会消失。 – CBroe