2016-04-26 69 views
0

我一直在查找StackOverflow上的javascript/iFrame文章約45分鐘,我收集了一些很棒的資源,但是我無法讓javascript在iFrame中正常工作。我從一個網站上附加了兩張截圖,這些截圖是我自己的iFramed。 iFrame彈出一個菜單,佔用60%的框架。我想在菜單中添加一個類,以在我的頁面加載時自動關閉它。我認爲我有正確的JS,但我無法實現它的功能。該課程根本不會添加。調整iFrame中的HTML - Javascript不工作

Menu opened Menu closed 這是我的iframe和JavaScript來改變DIV ID爲 「擴大」 級。我知道這聽起來很愚蠢,但是擴展是關閉菜單的類名。任何幫助,將不勝感激!謝謝。

<iframe src="http://dayzdb.com/map#2.065.045" style="width:500px; height:300px;" id="dayzdb"></iframe> 

     <script>$("#dayzdb").contents().find("#mapContainer").addClass("expanded")</script> 

代替發佈HTML(因爲它很長)我已經發布了網站鏈接,您可以在此檢查導航欄上的元素以查看它。

http://dayzdb.com/map

+0

我不認爲你需要'.contents()'如果你正在做'.find()'之後,我覺得'.find()'就足夠了。另外,你可以發佈一些包含在iFrame中的HTML嗎?它可以幫助我們找出爲什麼它不能正確選擇。 –

+0

是來自同一個域的'iframe'?如果不是,你需要[相同的原產地政策](https://en.wikipedia.org/wiki/Same-origin_policy)。 –

+0

偉大的問題,我也會附上HTML!我也會嘗試刪除內容,看看是否有效! –

回答

0

是否使用在你的頁面相同的域和你的iframe?不要忘記cross-domain政策,否則將無法正常工作!如果您可以控制兩個站點,則可以使用postMessage方法在不同域之間傳輸數據。一個很簡單的例子:

// framed.htm: 
window.onmessage = function(event) { 
    event.source.postMessage(document.body.innerHTML, event.origin); 
}; 

// Main page: 
window.onmessage = function(event) { 
    alert(event.data); 
}; 

// Trigger: 
// <iframe id="myframe" src="framed.htm"></iframe> 
document.getElementById('myframe').contentWindow.postMessage('','*');