Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 如何通过JS嵌入代码嵌入HTML_Javascript_Jquery_Html_Mootools - Fatal编程技术网

Javascript 如何通过JS嵌入代码嵌入HTML

Javascript 如何通过JS嵌入代码嵌入HTML,javascript,jquery,html,mootools,Javascript,Jquery,Html,Mootools,我需要给用户一段js代码,将一些HTML代码插入到页面中 我想知道最好的方法是什么。我应该使用document.write吗?我应该通过DOM编程创建所有HTML元素吗 可以使用js库吗?如果代码嵌入的网页已经包含库,我可以看到冲突发生 使用库可能太重,插入DOM元素非常冗长,如果目标站点使用应用程序/xhtml+xml内容类型,document.write可能无法工作。我认为最好的方法是使用document.createElement构造一个元素,然后在此基础上设置innerHTML。如果插入

我需要给用户一段js代码,将一些HTML代码插入到页面中

我想知道最好的方法是什么。我应该使用document.write吗?我应该通过DOM编程创建所有HTML元素吗


可以使用js库吗?如果代码嵌入的网页已经包含库,我可以看到冲突发生

使用库可能太重,插入DOM元素非常冗长,如果目标站点使用
应用程序/xhtml+xml
内容类型,document.write可能无法工作。我认为最好的方法是使用
document.createElement
构造一个元素,然后在此基础上设置
innerHTML

如果插入简单,您可以使用纯js,否则如果您想提供一些复杂的功能,可以使用library。在这种情况下,最好的选择是不扩展根对象(数组、函数、字符串)以防止冲突的库(noConflict模式下的jQuery、YUI等)

无论如何,最好避免使用
文档。编写
您最好使用现有元素的innerHTML设置或创建新元素。

建议:

将此DIV插入要显示输出的任何位置:

<div id="uniqueTargetID" style="display: none;"></div>

然后在页面底部有以下内容:

<script src="snippet.js"></script>

此文件(远程托管或其他方式)包含可通过以下方式输出的简单文本:

var html = [];
html.push('<h1>This is a title</h1>');
html.push('<p>So then she said, thats not a monkey, its a truck!</p>');
html.push('<p>You shoulda seen his face...</p>');
var target = document.getElementById('uniqueTargetID');
target.innerHTML = html.join('');
target.style.display = 'block';
var html=[];
push('这是一个标题');
推(“然后她说,那不是猴子,是卡车!

”; 推(你应该看看他的脸…

); var target=document.getElementById('uniqueTargetID'); target.innerHTML=html.join(“”); target.style.display='block';
如果您有帮助,我会避免使用document.write()。

Javascript::

//to avoid global bashing
(function(){
  var target = document.getElementById('ScriptName'),
    parent = target.parentElement,
    oput = document.createElement('div');
  oput.innerHTML = "<p>Some Content</p>";
  parent.insertBefore(oput, target);
}());
//避免全局重击
(功能(){
var target=document.getElementById('ScriptName'),
parent=target.parentElement,
oput=document.createElement('div');
oput.innerHTML=“某些内容”

”; parent.insertBefore(oput,target); }());
要提供给客户/人员的HTML::

<script type="text/javascript" id="ScriptName" src="/path/to/ScriptName.js"><script>


ScriptName应该是脚本特有的名称。

如果html中有单引号或双引号,会发生什么情况。有没有比用“替换”更好的方法来逃避js?一个挑剔的问题。。。join(“”),如果保持原样,会得到一堆逗号:)rksprst:这里提出的任何解决方案都会有这个问题。答案取决于您的数据来自何处,以何种形式,以及您如何利用这些数据,这是对您的脚本的补充。