2016-04-24 90 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代表。 –