[英]How to add a click event to p elements in iframe (using jQuery)
如何向 iframe 中的<p>
元素添加點擊事件(使用 jQuery)
<iframe frameborder="0" id="oframe" src="iframe.html" width="100%" name="oframe">
有一個特殊的 jQuery 函數可以做到這一點: .contents()
。 請參閱示例以了解其工作原理。
最好的辦法是調用 iframe,只要它是您域的一部分。
iframe.html
<html>
<head>
<script>
window.MyMethod = function()
{
$('p').click();
}
</script>
</head>
<body></body>
</html>
然后使用
document.getElementById('targetFrame').contentWindow.MyMethod();
調用該函數。
另一種方法是通過window.frames
訪問 iframe。
<iframe name="myIframe" src="iframe.html"/>
和 javascript
child_frame = window.frames['myIframe'].document;
$('p',child_frame).click(function(){
alert('This click as bound via the parent frame')
});
那應該可以正常工作。
想要添加這個,作為一個完整的復制粘貼解決方案(適用於 Firefox 和 Chrome)。 有時很容易忘記在文檔之后調用事件,因此 iframe 已完全加載:
$('#iframe').on('load', function() {
$('#iframe').contents().find('#div-in-iframe').click(function() {
// ...
});
});
iframe 必須在同一個域中才能工作。
要從 iframe 中訪問任何元素,一個簡單的 JavaScript 方法如下:
var iframe = document.getElementById("iframe");
var iframeDoc = iframe.contentDocument || iframe.contentWindow;
// Get HTML element
var iframeHtml = iframeDoc.getElementsByTagName("html")[0];
現在您可以使用此 html 元素選擇任何元素
iframeHtml.getElementById("someElement");
現在,您可以將您想要的任何事件綁定到此元素。 希望這會有所幫助。 抱歉英語不正確。
通過將 IFrame 文檔的引用作為 jQuery 的第二個參數,即上下文:
jQuery("p", document.frames["oframe"].document).click(...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.