3 回答

TA貢獻1893條經驗 獲得超10個贊
經過一番研究,并得到了Mike的肯定回答,我發現這是一個解決方案:
var d = $("#someFrame")[0].contentWindow.document; // contentWindow works in IE7 and FF
d.open(); d.close(); // must open and close document object to start using it!
// now start doing normal jQuery:
$("body", d).append("<div>A</div><div>B</div><div>C</div>");

TA貢獻1810條經驗 獲得超4個贊
我在這里四處走動,建議到目前為止提出的答案是不可能的。
如果此iframe實際上有一個src =“ somepage.html”(您應該已經指明,否則,使用iframe的意義是什么?),那么我認為Jquery不能在所有瀏覽器中直接跨框架操作html。 。根據我對這種事情的經驗,包含頁面無法直接從iframe頁面調用函數或與iframe頁面進行任何形式的Javascript聯系。
您的“ somepage.html”(在iframe中加載的頁面)需要做兩件事:
將某種對象傳遞到可用作橋梁的包含頁面
具有根據需要設置HTML的功能
因此,例如,somepage.html可能看起來像這樣:
<html>
<head>
<script src="jquery.js">
</script>
<script language=JavaScript>
<!--//
var bridge={
setHtml:function(htm) {
document.body.innerHTML=htm;
}
}
$(function() { parent.setBridge(bridge); });
//--></script>
</head>
<body></body>
</html>
并且包含頁面可能如下所示:
<html>
<head>
<script src="jquery.js">
</script>
<script language=JavaScript>
<!--//
var bridge;
var setBridge=function(br) {
bridge=br;
bridge.setHtml("<div>A</div><div>B</div><div>C</div>");
}
//-->
</script>
</head>
<body><iframe src="somepage.html"></iframe></body>
</html>
這可能看起來有些令人費解,但可以在多個方向進行調整,并且至少應在IE,FF,Chrome和Safari和Opera中起作用。
添加回答
舉報