2014-10-06 18 views
0

我正在調用div內的第三方腳本標記。這第三方js呈現一個iframe &將他們的內容放在我把這個標籤放入div中。然而,我看到iframe,但頭部& iframe的身體沒有任何東西,似乎js沒有得到正確執行&因此,我看不到div內的內容。我可以看到附加到div的iframe生成&,但無法看到其中的任何內容。這是我已經把第三方標籤(PS基本上第三方腳本標籤拉的object1 &執行財產「ABC」的價值。)將包含外部js的div追加到js中的另一個div無法正確執行

HTML文件:

< div id= "div2" style="display:none" > 
<script> 
var object1 = { 
    abc: "this is a fruit" 
}; 
< /script> 
<script type="text/javascript" src="thirdpartyjscode.js"></script> 
</div> 

js文件:

$('#div1').append($('#div2').show()); 

此代碼會告訴我DIV2內DIV1但和內部DIV2腳本就得到evealuated &我看到的iframe追加到DIV2,但我沒有看到裏面的任何內容。爲什麼會發生?我不明白。我看了也許使用eval()會幫助,但我不是很確定

這是什麼樣的內容看起來像在控制檯中我做這&然後我控制檯登錄「內容」

var content = $('#div2').detach().html(); 
$('#div1').append('<div>', { 
    id: 'div2', 
    html: content 
}); 

控制檯後。日誌(內容)給我的下面。但我沒有看到該iframe追加到DIV2

  <script type="text/javascript"> 
       var object1 = { 
        abc: "this is a fruit" 
       }; 
      </script> 



<script type="text/javascript" src="thirdpartyjscode.js"></script><iframe id="abc_61086936097182" src="" width="610" height="100%" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" style="display: block; height: 871px;"></iframe> 
+0

你的對象是div爲純文本不是腳本代碼裏面......儘量把你的對象

1

追加現有的DOM元素到另一個元件只是移動的元件在DOM。 Javascript只在執行時將添加到DOM,而不是當它剛剛在DOM中重新定位時執行。如果你希望它被執行,你需要做一個副本:

var content = $('#div2').detach().html(); 
$('#div1').append('<div>', { 
    id: 'div2', 
    html: content 
}); 
+0

我會嘗試你的解決方案。此外,有沒有辦法完全省略HTML代碼並將整個代碼直接放在我的文件js中的上述html中?這樣我就不必隱藏()或顯示()。你知道這樣做的正確方法嗎? – appleris 2014-10-06 16:35:35

+0

我試過你的解決方案,但它不起作用。我沒有看到div2追加到div1 – appleris 2014-10-06 16:42:51

+0

而是。我看到div2附加到div1,但它沒有id名稱,也沒有執行腳本。不要看到任何內容或iframe生成 – appleris 2014-10-06 16:49:08