javascript - 火狐插件 : What is the best way to insert a large chunk of HTML?

标签 javascript xml firefox firefox-addon firefox-addon-restartless

虽然 createElement()appendChild() 是首选方法,但对于大块 HTML 来说,它可能会变得乏味。

这是一个例子:

<input type="button" name="addbbcode16" id="addbbcode16" value="Quote=" onclick="bbstyle(16)" class="first-button" /> 
<input type="button" value="RemoveTag" onclick="makeChange('remove')" /> 
<input type="button" value="toLower" onclick="makeChange('lower')" /> 
<input type="button" value="toUpper" onclick="makeChange('upper')" /> 
<input type="button" value="TitleCase" onclick="makeChange('titlecase')" class="last-button" />

<br style="clear: both;" /> 
<input type="button" accesskey="b" name="addbbcode6" id="addbbcode6" value="B" onclick="bbstyle(6)" style="font-weight: bold;" class="first-button" /> 
<input type="button" accesskey="i" name="addbbcode8" id="addbbcode8" value="i" onclick="bbstyle(8)" style="font-style: italic;" /> 
<input type="button" accesskey="u" name="addbbcode10" id="addbbcode10" value="u" onclick="bbstyle(10)" style="text-decoration: underline;" /> 
<input type="button" accesskey="l" name="addbbcode12" id="addbbcode12" value="List" onclick="bbstyle(12)" /> 
<input type="button" accesskey="o" name="addbbcode14" id="addbbcode14" value="List=" onclick="bbstyle(14)"  class="last-button" /> 
&nbsp; Font colour: 
<select name="addbbcode18" onchange="makeChange('[color=' + this.form.addbbcode18.options[this.form.addbbcode18.selectedIndex].value+ ']', '[/color]'); this.selectedIndex=0;"> 
<option value="#">Default</option> 
<option style="color: darkred;" value="darkred">Dark Red</option> 
<option style="color: red;" value="red">Red</option> 
<option style="color: orange;" value="orange">Orange</option> 
<option style="color: brown;" value="brown">Brown</option> 
<option style="color: yellow;" value="yellow">Yellow</option> 
<option style="color: green;" value="green">Green</option> 
<option style="color: olive;" value="olive">Olive</option> 
<option style="color: cyan;" value="cyan">Cyan</option> 
<option style="color: blue;" value="blue">Blue</option> 
<option style="color: darkblue;" value="darkblue">Dark Blue</option> 
<option style="color: indigo;" value="indigo">Indigo</option> 
<option style="color: violet;" value="violet">Violet</option> 
<option style="color: white;" value="white">White</option> 
<option style="color: black;" value="black">Black</option> 
</select> 
&nbsp; Font size: 
<select name="addbbcode20" onchange="makeChange('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]'); this.selectedIndex=2;"> 
<option value="7">Tiny</option> 
<option value="9">Small</option> 
<option value="12" selected="selected">Normal</option> 
<option value="18">Large</option> 
<option value="24">Huge</option> 
</select>

还有其他选择吗?
可以制作成XUL文档/片段并插入吗?

我知道有些部分可以用循环创建。不希望使用 innerHTML

最佳答案

除了实际动态生成代码(使用一些循环)或使用 .innerHTML (在性能方面不是最好的主意,而且还容易出现安全漏洞,因此不鼓励),您可以做到这一点到 XHTML XML 文档中:

  1. 将其作为有效的 XHTML 或 XUL(或混合;命名空间,是的)片段(XML 文档)放入某个文件或字符串中。
  2. 使用 XHR 或 DOMParser 将其解析为 DOM。
  3. .importNode.adoptNode(深入)到目标文档中。
  4. 使用普通 DOM API 插入导入/采用的节点(.appendChild.insertBefore)

关于javascript - 火狐插件 : What is the best way to insert a large chunk of HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24669558/

相关文章:

xml - 使用标准模块 `parsexml` ,如何通过纯字符串流或字符串而不是文件解析 XML

javascript - 如何使用数组和字符串参数进行 Ajax 调用

javascript - Node、Express、Angular 路由错误

javascript - 将 Base64 字符串转换为字节数组

html - XSLT 将 XML 模式转换为 HTML

java - 修改 XML 节点但保持 XML 文件格式不变

css - 字体在 Firefox 和 Chrome 中看起来不同

html - 绝对位置,底部 0,firefox 不工作

css - 当 CSS 可见属性为 false 时,Firefox 中的控件是否会接收鼠标事件?

javascript - 我们如何使用jquery通过ip地址获取国家名称