好的,标题可能有点模糊,但这个想法很简单。
我有一些 JavaScript 代码在 HTML 页面的 Head 部分添加对 JS 文件的引用,在添加新的 JS 文件后,我想调用这个新添加的 JS 文件中存在的函数。所以我有一个执行以下 JS 代码的链接(带有 javascript:eval):
//PART 1
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://localhost/test.js');
head.appendChild(script);
//wait for JS file to load should go here
//PART 2
calltest(); //calltest is a function that exists within http://localhost/test.js
如果 PART 1 和 PART 2 之间存在延迟(例如,它们位于用户按顺序单击的 2 个单独的链接上),这可以正常工作,但如果整个代码在一个链接上按顺序执行(我猜因为 JS 文件(在第 1 部分中添加)还没有机会加载)。无论如何让第 2 部分等待第 1 部分完全完成?,也许是某种延迟或在调用函数 calltest() 之前等待检索 JS 文件?