我正在编写一个脚本,该脚本需要在脚本所在的位置(类似小部件的方法)向页面添加 DOM 元素。做这个的最好方式是什么?
以下是我正在考虑的技术:
- 在脚本正上方包含一个 id="Locator" 的元素。问题:
- 我不喜欢额外的标记
- 如果我在页面中重用小部件,几个元素将具有相同的“定位器”ID。我正在考虑在脚本中添加一行以删除曾经使用过的 id,但仍然......
- 在脚本中添加一个 id。问题:
- 即使它似乎有效,id 属性对脚本元素也无效
- 与上面相同的问题,如果我在页面中重用脚本,几个元素将具有相同的 id。
- 使用 getElementsByTagName("script") 并选择最后一个元素。到目前为止,这对我有用,只是看起来有点重,我不确定它是否可靠(考虑延迟脚本)
document.write:不优雅,但似乎可以完成这项工作。
[编辑]根据idealmachine的回复,我正在考虑另一种选择:
- 在脚本标签中包含一个属性,例如goal="tabify"。
- 使用 getElementsByTagName("script") 获取所有脚本。
- 循环遍历脚本并检查 goal="tabify" 属性以找到我的脚本。
- 如果页面中有另一个小部件,请删除目标属性。
[编辑]另一个想法,也受到迄今为止回复的启发:
- 使用 getElementsByTagName("script") 获取所有脚本。
- 循环遍历脚本并检查 innerHTML 以找到我的脚本。
- 在脚本结束时,删除脚本标签,以防页面中有另一个小部件。