如何动态加载html文件并在其中执行外部js

Posted

技术标签:

【中文标题】如何动态加载html文件并在其中执行外部js【英文标题】:How to dynamic load html file and execute the exernal js in it 【发布时间】:2017-04-26 09:38:04 【问题描述】:

我有一个 html 文件:index.html,其中包含一些基本的 js 库。 而且我还有一些模块:

a.html:

<div id='a'>
  <script src="a1.js"></script>
  <script src="a2.js"></script>
</div>

a1.js:

console.log('a1')

a2.js:

console.log('a2')

如何将a.html动态加载到index.html中并获取a1.js和a2.js执行完毕的事件?

【问题讨论】:

查看此answer,如果它有助于投票。 【参考方案1】:

使用w3data.js 来做到这一点(w3data.js)

示例: in index.html

<html>
<script src="http://www.w3schools.com/lib/w3data.js"></script>

<body>

<div w3-include-html="a.html"></div> 

<script>
w3IncludeHTML();
</script>

</body>
</html>

【讨论】:

但是,我怎样才能让a1.js和a2.js完成的事件被执行呢? 因为这包括你的 a.html 文件,所以这也会执行你的 a1.js 和 a2.js 文件 我阅读了w3data.js的源代码,发现它使用innerHTML来附加外部html文件:a.html。我知道它会加载 a1.js 和 a2.js 并执行它们,但我想捕获 a1.js 和 a2.js 立即执行的事件。有可能吗? 要捕获 a1 的事件,您必须在 a1.js 中的 console.log('a1') 之前或之后编写一些代码。在 a2.js 中相同 我有一个想法,我可以使用 AJAX 来获取 a.html 的内容,使用正则表达式来获取所有

以上是关于如何动态加载html文件并在其中执行外部js的主要内容,如果未能解决你的问题,请参考以下文章

“高三”笔记之动态JS动态样式

如何动态加载js文件

如何在js文件中动态加载另一个js文件?

如何在js文件中动态加载另一个js文件?

原生JS动态加载JSCSS文件及代码脚本

原生JS动态加载JSCSS文件及代码脚本