2016-10-06 68 views
1

我正試圖在已經在生產中的網站上展示一項新功能。所以,我加載使用iframe本網站到我的開發服務器如下:使用jQuery處理用戶在html5 iframe中的點擊

<!DOCTYPE html> 
<html lang="en"> 
<head> 

</head> 
<body> 
<iframe id="myframe" src="https://production_website.com" style="border:none;" width="100%" height="600" seamless></iframe> 
</body> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script> 
     console.log($("#myframe").contents()); 
     $("#myframe").contents().find(".importantContent").click(function(){ 
     console.log($(this)); 
     }); 
    </script> 
</html> 

我試圖攔截在iframe區特定的DOM元素在用戶點擊的基礎上,我會注入具體的HTML內容來演示一個功能。但用jquery click()監聽不起作用。

關於怎麼做的任何建議?

我知道同樣的源策略限制,但對於無法控制服務器的網頁設計人員/開發人員,是不是有解決方法,如使用插件禁用限制?

例如:https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

+0

不會發生在相同的原產地政策。我確定控制檯有錯誤信息來備份它。 – epascarello

+0

@epascarello感謝您的注意!我知道這個限制。我想知道如果我可以禁用JavaScript中的安全功能的演示的原因,並在稍後激活它,那會工作嗎? – MedAli

+0

您可以通過更改其配置來禁用瀏覽器,但對其他人無法神奇。 – epascarello

回答

1

我發現在另一個線程這個答案,它看起來像它可能在你結束工作。嘗試:

$('#myframe').load(function(){ 

    var iframe = $('#myframe').contents(); 

    iframe.find(".importantContent").click(function(){ 
      alert("test"); 
    }); 
}); 

而且,你有$( 「#RECO」)的內容()而不是$( 「#myframe」)的內容(),是你的意思不使用你在這個有IFRAME。例?

+0

懷疑它會工作。 – epascarello