文档加载后如何在页面上添加JavaScript?

时间:2018-12-29 01:21:27

标签: javascript html ajax

我最近一直在尝试AJAX,使用它来捕获存储在单独文件中的HTML片段,并将其包含在我的页面中。在大多数情况下,它似乎可以像预期的那样工作:新的HTML由客户端脚本放置在页面上,浏览器检测到更改,并且站点已更新以显示新数据。但是,我注意到这不适用于脚本标签...标签中的代码永远不会运行,也不会检测到任何功能。

例如,如果我具有以下HTML:

<!DOCTYPE html>
<html>
    <head></head>
    <body>
    <div id="placeHTMLHere"></div>
    </body>
</html>

并使用JavaScript将div元素的innerHTML设置为以下内容:

<script>
    var thisWillNot = function() { }
</script>
<p onclick="alert('this will work'); alert(typeof thisWillNot);">this will work</p>

我当然会在页面上看到“这将起作用”字样,如果单击它们,将警告“这将起作用”,然后是“未定义”。因此,我知道浏览器永远不会“执行”函数定义;对thisWillNot()的任何调用都会失败。

我只是好奇为什么我可以运行附加到HTML元素的基于事件的JavaScript,但是不能向页面添加其他脚本。我本来以为只是浏览器无法识别出添加了新脚本,但由于它会立即重新渲染页面以包含新的可显示元素,因此我不得不得出结论,浏览器确实知道何时有新内容(或代码)介绍给页面。我可以采取什么措施来迫使浏览器“刷新”它所看到的JavaScript,以便我可以动态加载脚本?

谢谢!

0 个答案:

没有答案