Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在iframe中设置变量只能以纯Javascript方式工作,而不能在Jquery中工作?_Javascript_Jquery_Iframe - Fatal编程技术网

为什么在iframe中设置变量只能以纯Javascript方式工作,而不能在Jquery中工作?

为什么在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

我试图在iframe中添加一个变量,它以Javascript的方式工作,但它并没有以Jquery的方式完成我想要的任务。这是一本书

纯javascript方式:

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;')