考慮到與<span class="fineme">
整個iframe中的iframe ...JQUERY,將事件監聽器添加到iFrame中的項目?
是否有可能與jQuery添加事件偵聽器來觸發警報隨時隨地用戶在.fineme在iframe中移動他們的鼠標,從頂部/父窗口?
考慮到與<span class="fineme">
整個iframe中的iframe ...JQUERY,將事件監聽器添加到iFrame中的項目?
是否有可能與jQuery添加事件偵聽器來觸發警報隨時隨地用戶在.fineme在iframe中移動他們的鼠標,從頂部/父窗口?
查看http://api.jquery.com/contents/用於訪問iframe的內容文檔。
一個解決您的問題可能是:
$("iframe#name").contents().find(".fineme").bind("mouseover", function() { alert("Found me"); });
是啊,這似乎在默認情況下,如果你運行了父窗口的選擇也不會發現的iframe中的元素。但是,您可以明確地向jQuery提供上下文以查看iframe內部。要做到這一點
一種方法是:
var iframe = $("#someIframeId");
$(".fineme",iframe.get(0).contentDocument).mouseover(function(){alert('hi')});
注:如果兩個父網站和iframe在同一域中這隻會工作。欲瞭解更多信息,請參閱:http://madskristensen.net/post/Iframe-cross-domain-JavaScript-calls.aspx
有趣,但似乎沒有工作? – AnApprentice 2010-07-18 00:46:43
有一點需要注意:爲此,iframe必須與頁面位於同一個域中。如果他們在不同的領域,我認爲瀏覽器的安全性,我停止工作。 – 2010-07-19 01:01:34
這適用於原生jQuery,但對於jQuery UI對象呢?例如,如果您調用元素上的可調整大小,它將不具有鼠標上下文。您必須單擊可調整大小的手柄,然後將鼠標拖到iframe之外,才能響應鼠標移動。 – naivedeveloper 2011-06-01 17:38:48
我有一個類似的問題,並找到了適合我的解決方案。試試這個:
document.getElementById('iframe_id').contentWindow.$('.fineme').on(...)
它適用於任何jQuery的功能,但監聽對iFrame的DOM的jQuery的事件。
有趣,但這似乎不工作? – AnApprentice 2010-07-18 00:47:04
適合我。也許這個類應該是'.findme'而不是'.fineme'? – 2010-07-18 04:05:08
您可能需要將其包裝在一張支票中以確保iframe已加載。如果您在加載iframe之前嘗試訪問內容,您將無法找到它。將它包裝在$(「iframe#name」)中。load()。 – naivedeveloper 2011-06-01 17:37:36