为什么在iframe中设置变量只能以纯Javascript方式工作,而不能在Jquery中工作?
我试图在iframe中添加一个变量,它以Javascript的方式工作,但它并没有以Jquery的方式完成我想要的任务。这是一本书 纯javascript方式:为什么在iframe中设置变量只能以纯Javascript方式工作,而不能在Jquery中工作?,javascript,jquery,iframe,Javascript,Jquery,Iframe,我试图在iframe中添加一个变量,它以Javascript的方式工作,但它并没有以Jquery的方式完成我想要的任务。这是一本书 纯javascript方式: var iframeDocument = $('#iframe')[0].contentWindow.document; var scriptObject = iframeDocument.createElement("script"); scriptObject.type = "text/javascript"; scriptObje
var iframeDocument = $('#iframe')[0].contentWindow.document;
var scriptObject = iframeDocument.createElement("script");
scriptObject.type = "text/javascript";
scriptObject.innerHTML = "var variable=9;";
iframeDocument.body.appendChild(scriptObject);
控制台中的结果正常(变量已设置并等于9和iframe上下文):
当我尝试更改JQuery中变量的值时:
$('#iframe').contents().find('body').append($('<script type="text/javascript">').html('variable=10;'));
$('iframe').contents().find('body').append($(''.html('variable=10;'));
该变量在父上下文中加载,在iframe中没有更改!
我知道Javascript方式通常比Jquery方式好,但我只是想知道为什么它不能像预期的那样工作。您缺少了
,顺便说一句,您不能这样注入。
试试这个:
$('#iframe').contents().find('body').append($('<script type="text/javascript"><\/script>').html('var variable=10;'));
$('iframe').contents().find('body').append($(''.html('var variable=10;'));
$('')
不关心结束标记,但当附加它时,它会打印
,这是一种强制切换的方法,也可以是:$('#iframe').contents().find('body').append('var variable=10;')代码>