Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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
Javascript a<;脚本>;是否自动计算附加到文档的标记?_Javascript_Cross Browser_Script Tag - Fatal编程技术网

Javascript a<;脚本>;是否自动计算附加到文档的标记?

Javascript a<;脚本>;是否自动计算附加到文档的标记?,javascript,cross-browser,script-tag,Javascript,Cross Browser,Script Tag,在许多浏览器上,如果我这样做: var x = document.createElement("SPAN"); x.innerHTML = "<script>alert(1);</script>"; document.body.appendChild(x); var x=document.createElement(“SPAN”); x、 innerHTML=“警报(1);”; 文件.正文.附件(x); 不会发生警报 是否有任何浏览器会发生这种情况?如果是,哪些

在许多浏览器上,如果我这样做:

var x = document.createElement("SPAN");
x.innerHTML = "<script>alert(1);</script>";   
document.body.appendChild(x);
var x=document.createElement(“SPAN”);
x、 innerHTML=“警报(1);”;
文件.正文.附件(x);
不会发生警报


是否有任何浏览器会发生这种情况?如果是,哪些是?

无。innerHTML不运行脚本元素(除非它们有defer属性,但我认为这不是通用的)

我还没有测试过以下内容,但它应该在支持DOM和JS的浏览器中得到普遍支持

var script = "alert(1)";
var script_node = document.createTextNode(script);
var script_element = document.createElement('script');
script_element.type = "text/javascript";
script_element.appendChild(script_node);
document.body.appendChild(script_element);

没有。innerHTML不运行脚本元素(除非它们有defer属性,但我认为这不是通用的)

我还没有测试过以下内容,但它应该在支持DOM和JS的浏览器中得到普遍支持

var script = "alert(1)";
var script_node = document.createTextNode(script);
var script_element = document.createElement('script');
script_element.type = "text/javascript";
script_element.appendChild(script_node);
document.body.appendChild(script_element);

正如David指出的,使用
.innerHTML
是行不通的

虽然大多数人会认为添加到DOM是一种方法,但这种方法在Safari2.0上不起作用

中使用的最佳方法是使用
document.write()

//在Safari 2.0中,通过DOM插入失败,因此暴力方法
文件。写('alert(“hi”);');

正如David指出的那样,使用
.innerHTML
是行不通的

虽然大多数人会认为添加到DOM是一种方法,但这种方法在Safari2.0上不起作用

中使用的最佳方法是使用
document.write()

//在Safari 2.0中,通过DOM插入失败,因此暴力方法
文件。写('alert(“hi”);');

通过innerHTML添加脚本在我所知道的任何浏览器中都不起作用。通过dom添加脚本节点在IE中不起作用。如果您有一个html字符串,其中包含要插入到页面中的脚本标记,最好的办法是提取脚本标记内容并对其进行评估。原型库有一个方便的函数来完成这项工作(以及插入html和eval脚本等的其他函数)。

通过innerHTML添加脚本在我所知道的任何浏览器中都不起作用。通过dom添加脚本节点在IE中不起作用。如果您有一个html字符串,其中包含要插入到页面中的脚本标记,最好的办法是提取脚本标记内容并对其进行评估。原型库有一个方便的函数来实现这一点(以及插入html和eval脚本等的其他函数)。

document.write在具有完整DOM的页面上不起作用(人们开始考虑innerHTML时通常是这样),Safari 2的市场份额很小。在一个比Windows系统升级更多的平台上,它比stable落后了两个版本(Windows系统继续给我们留下IE6的遗产)文档。write无法在具有完整DOM的页面上工作(人们开始考虑innerHTML时通常是这样),Safari 2的市场份额很小。在一个比Windows系统升级更多的平台上,它比stable落后了两个版本(Windows系统继续给我们留下IE6的遗产)