我正在使用XHR从外部[可信]来源加载一些html。然后使用innerHTML属性将此脚本注入div元素。接下来,我使用getElementsByTagName(' script')来识别这个新加载的html中的所有脚本标记,并通过eval顺序执行它们。 这种做法似乎在大多数情况下都有效,除了它间歇性地(在Chrome上)中断了一个源自这些脚本标签之一的错误。 我唯一的猜测是getElementsByTagName返回的元素顺序不能得到保证,但我找不到任何支持这个的证据。 需要注意的一件重要事情是,通常通过将innerHTML设置为空字符串并重复该过程来刷新内容。
任何想法都赞赏:)
更新:似乎这些脚本正在污染全局命名空间(窗口),因此当刷新内容时,它们可能会触发错误。除了使用iframe之外,不知道如何解决这个问题。