2016-04-24 87 views
0

背景資料:
你好, 最近我一直在試圖建立一個網站生成供我上學,這已經相當不錯,它幾乎擁有的許多功能維克斯。最近,我嘗試通過parallax.js添加對視差效果的支持,並且它完美地工作(您可以生成網站並在保存並在新選項卡中打開它時看到它),但parallax.js不會重新掃描頁面每次頁面改變時,視差元素。我嘗試使用iframe來做到這一點,它的工作。然而,我給他們預覽的方式是代碼是在客戶端生成的(在頁面生成器中),所以我需要一種方法來使用生成的代碼通過JavaScript'加載'IFrame。
直達該點:
如何加載一個IFrame頁面,該頁面使用由javascript生成的客戶端代碼,並存儲在變量中?每次對頁面進行更改時都需要重新加載,這會觸發第三方軟件庫。加載的IFrame

回答

0

你應該能夠逃脫: -

var newCode = "<p>YOUR HTML</P>"; 
$('#myIframe').contents().find('html').html(newCode); 

如果jQuery是無效的,那麼這相當於: -

var newCode = "<p>YOUR HTML</P>"; 
var iframe = document.getElementById('myIframe'); 
var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; 
iframeDoc.getElementsByTagName('html')[0].innerHTML = newCode; 

然而,更多的 '未來' 依賴的方式您的瀏覽器支持目標可能是使用HTML5 srcdoc屬性。在撰寫本文時,IE不支持此功能。

<iframe srcdoc="<p>Hello world!</p>" src="demo_iframe_srcdoc.htm"></iframe> 

如果瀏覽器支持srcdoc屬性,它將覆蓋在src屬性所指定的內容(如果存在)。

要使用變量更新它,您應該能夠選擇iframe並獲取srcdoc屬性,然後將該變量賦值爲該值。

var newCode = "<p>New code</p>"; 
document.querySelector('iframe').setAttribute('srcdoc', newCode); 
// or try this - 
document.getElementById("myFrame").srcdoc = "<p>Some new content inside the iframe!</p>"; 

延伸閱讀:

  1. http://www.w3schools.com/tags/att_iframe_srcdoc.asp
  2. http://www.w3schools.com/jsref/prop_frame_srcdoc.asp
+0

是否html的()jQuery中運行在iframe任何腳本標記? (我正在尋找所有函數,指示頁面的開始,如onload,要運行。) –

+0

@ Evan_K2014是的,它應該運行良好。請檢查http://stackoverflow.com/questions/1591135/why-does-appending-a-script-to-a-dynamically-created-iframe-seem-to-run-the如果您遇到問題並且想要嘗試更明確地添加腳本標記。 – Shakespeare

+0

謝謝你的快速回答!這大大幫助了我。我會+1,但我不是15代表。 –