我想從另一個框架調用一個函數,但我似乎無法通過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