我使用以下代码在现有的封闭脚本标记之后添加脚本标记(通过代码在html文件中添加新的脚本标记)
return '\n' + "<script>\n" + '\t' + scriptContent + "\n</script>\n";
(脚本内容是helloworld
html内容如下所示
我希望第二个开始脚本标记在封闭脚本标记后面(在第一行)中,我该怎么做?第一个&#39; \ n&#39;在这里没有帮助...
只有在我添加 br 时才会工作,如果这是我唯一的解决方案,如何删除完全 br 在这里...
return "<br />" +"\n" +"<script>\n" + '\t' + scriptContent + "\n</script>\n";
点击转换后,请查看以下js小提示,两个脚本标记不是缩进 ...
请看下面的jsFiddle(类似于我从SO中使用的作为参考)
的jsfiddle
正如您在单击转换时所看到的那样,缩进(新脚本和现有脚本)的脚本对象,我该如何处理它,或者可能有更好的方法吗?
我希望新脚本会像下面一样添加(内部带有alerty的脚本......
....
ui-resourceroots="{'tdrun': './'}">
</script>
<script>
alert("test");
</script>
我需要以下内容:
在提供的脚本ID之后插入一个新脚本(在后面的代码中) test-ui-bootstrap&#39;)
- 醇>
更新属性值(
时)提供密钥)
以下两个答案在这里都没有帮助......
答案 0 :(得分:6)
问题是.insertAfter()
正在修剪HTML字符串中的前导空格。解决方案是使用.after()
代替。我通过玩你的小提琴来解决这个问题,这里是updated fiddle。
答案 1 :(得分:3)
该问题与将要处理返回字符串的位置有关。
\n
,\r
,\t
等都是JavaScript字符串转义码,因此,它们仅在JavaScript运行时评估字符串时才有效。如果您有一个包含这些代码的JavaScript字符串并将该字符串传递给HTML解析器(例如,通过.innerHTML
),那么将要求HTML解析器评估该字符串,并在HTML解析器的世界中{ {1}}是您添加换行符的方式,而不是<br>
。这就是\n
为你效力的原因。
因此,当JavaScript引擎评估<br>
时,会在字符串中注入换行符,但是当HTML解析器获取该换行符时,它会忽略它,就像任何回车符一样在标记中。
在过去,我们可以通过注入\n
来获取此“漂亮”代码,该代码会编写您的内容,然后在HTML中添加换行符。你今天仍然可以这样做,但它不被认为是一个好习惯,因为它要求你在HTML文档中内联注入代码,否则你将覆盖整个DOM。
如果这是你想要的东西,因为它会让你感到温暖和模糊,我建议忘掉它并继续前进。
最后,这是创建新元素并将它们注入DOM的DOM标准方法:
document.writeln()
var o = document.getElementById("output");
var scriptContent = "alert('Hello World!')";
var s = document.createElement("script");
var t = document.createTextNode(scriptContent);
s.appendChild(t);
o.appendChild(s);
答案 2 :(得分:0)
这个怎么样:
. . .