【问题标题】:Alternative to document.write javascript?替代 document.write javascript?
【发布时间】:2014-04-04 21:36:26
【问题描述】:

我认为我有一个可行的替代方案....我相信我已经删除了它,现在我找不到它了。有人知道 document.write javascript 的替代方法吗?代码如下:

document.write('<div id="myDiv1"></div>');

有人知道 document.write javascript 的替代方法吗?

【问题讨论】:

  • 替代实现什么目标? document.write 的作用非常具体。
  • 是的,但是当我使用 ajax 加载正文时,document.write 会加载...
  • 所以在某些时候你想通过 JavaScript 向 DOM 添加一个新的div,但它可能会在 DOM 加载后运行。在这种情况下,您可以使用一个非常大且文档齐全的 DOM API,更不用说可以根据需要使用的许多库 API。
  • 另一种方法是使用DOM
  • @user3499262:它非常适合它的用途。我认为你只需要阅读一两个关于 DOM 操作的简单教程。这是一个覆盖面广的领域。

标签: javascript


【解决方案1】:

document.create<...> 呢?

 var newDiv = document.createElement("div"); 
 var newContent = document.createTextNode("Whateveryourcontentis");
 newDiv.appendChild(newContent);
 document.querySelector("#mytarget").appendChild(newDiv)

或者,如果您必须输入更复杂的结构,我会使用DocumentFragment

【讨论】:

    【解决方案2】:

    document.create&lt;...&gt; 解决方案是最安全的,但如果您需要插入存储为字符串的原始 HTML(仅来自受信任的来源,例如,请勿将此方法用于其他用户发布的内容,即使现代浏览器不允许),您可以使用innerHTMLouterHTML

    document.body.innerHTML += '<b>I can add raw markup!<\/b><img src="x" onerror=\'alert("But be careful!")\'>';
    

    请参阅 https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML 以了解更多关于将 innerHTMLouterHTML 用于不可信内容的持续风险。这基本上和使用 eval() 处理不受信任的内容一样危险。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 2018-04-13
      • 2014-05-07
      相关资源
      最近更新 更多