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