是否有簡單的表達式來訪問使用jquery的iframe body。 假設iframe的id是框架。jQuery的iframe身體選擇器
我想給事件處理程序iframe。 例如,
$("#theframe").contents().find("body").click(function() {
alert("hello, you touched me~");
});
但是,此代碼在IE中不起作用。
任何其他想法 幫幫我〜
是否有簡單的表達式來訪問使用jquery的iframe body。 假設iframe的id是框架。jQuery的iframe身體選擇器
我想給事件處理程序iframe。 例如,
$("#theframe").contents().find("body").click(function() {
alert("hello, you touched me~");
});
但是,此代碼在IE中不起作用。
任何其他想法 幫幫我〜
給一個名稱屬性的iframe元素。現在你可以像這樣引用它:
window.name_of_iframe
你的iframe可能沒有那麼jQuery的使用標準穿越是一種更安全的方式
iframe_body = window.name_of_iframe.document.getElementsByTagName("body")[0];
這將是在iframe body元素。這是的jQuery主機頁面上可用但是,這樣:
$(window.name_of_iframe.document.getElementsByTagName("body")[0]);
是你的jQuery包裝的iframe的主體元素。
注意做到這一點只有在iframe中加載:
$("iframe[name=name_of_iframe]").load(function() {
var iframe_body = window.name_of_iframe.document.getElementsByTagName("body")[0];
$(iframe_body).click(function() {
alert("hello, you touched me~");
});
});
UPDATE:測試它在IE瀏覽器,並有一個與它相當starnge行爲。在Firefox中,您必須將其包裝在文檔就緒事件中,但在IE中,它必須位於iframe元素之後的外部。此版本也適用於IE和Firefox。
<iframe name="ifr" src="?if=1"></iframe>
<script type="text/javascript">
var ifr_loaded = false;
$("iframe").load(function() {
$(window.ifr.document.getElementsByTagName("body")[0]).click(function() { alert("s"); });
ifr_loaded = true;
});
$(function() {
if (!ifr_loaded)
{
$("iframe").load(function() {
$(window.ifr.document.getElementsByTagName("body")[0]).click(function() { alert("d"); });
});
}
});
</script>
更新2:較短的版本,但它有它的缺點,那你必須指定在JavaScript iframe的來源,但它在我嘗試了所有瀏覽器上運行。
<iframe name="ifr"></iframe>
<script type="text/javascript">
$(function() {
$("iframe").load(function() {
$(window.ifr.document.getElementsByTagName("body")[0]).click(function() { alert("d"); });
}).attr("src","/teszt/v/index.php?if=1");
});
</script>
更新3:而對於年底的更簡單的方法:
<script type="text/javascript">
function init_iframe(obj) {
$(obj.document.getElementsByTagName("body")[0]).click(function() { alert("d"); });
}
</script>
<iframe name="ifr" src="?if=1" onload="init_iframe(window.ifr);"></iframe>
您的網域的iframe裏面的文件? –
是的,在其他目錄中的域名相同 –
IE給你的錯誤是什麼? – meo