Javascript 我如何知道Chrome何时执行外部脚本?
我是javascript和chrome开发工具的新手。我们有一个包含以下内容的页面:Javascript 我如何知道Chrome何时执行外部脚本?,javascript,Javascript,我是javascript和chrome开发工具的新手。我们有一个包含以下内容的页面: <head> .. <script type="text/javascript" src=”path/to/some/external/script1.js> .. </head> <body> … some HTML <script type="text/javascript”> ..some inline javascript code here
<head>
..
<script type="text/javascript" src=”path/to/some/external/script1.js>
..
</head>
<body>
… some HTML
<script type="text/javascript”>
..some inline javascript code here
</script>
...some more HTML
<script type="text/javascript”>
..some more inline javascript code here
</script>
</body>
..
..
…一些HTML
…这里还有一些内联javascript代码
我的理解是浏览器将按照页面上显示的顺序执行javascript。当浏览器执行JS时,我是否可以让浏览器在不修改script.JS的情况下打印“Now executed script.JS”这样的消息?您唯一能做的就是在它下面放置一个
标记,并在那里运行代码。使用MutationObserver,创建以下内联脚本作为
中的第一个标记
虽然,这将告诉您加载事件何时触发,但我不确定这与正在运行的脚本有何关系
初始测试(在Firefox中)表明加载事件在代码运行后触发-您的里程可能会有所不同
而通常的互联网爆炸警告-仅在IE11中有效-对于IE9/IE10,您可以使用
domsubtreemedited
事件来做一些事情,尽管我很确定这样做会很痛苦。对于IE8和更早的版本,我建议使用一条嘲弄性的消息,告诉用户停止使用垃圾浏览器:p请详细说明。把脚本标签放在哪里?我只想知道剧本的顺序execution@user674669“就在它下面”。与控制台('script1.js已完成!')一样代码>如果你只是想知道脚本执行的顺序,你可以保证它在标记中是按顺序进行的。你知道外部脚本中有什么吗?@D-reaper,不,我不知道。我将无法修改外部脚本。也许可以检查该脚本的源代码中的内容,并查看它是否将任何内容导出到窗口对象?如果是,那么您可以检查它是否已加载。
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.type == 'childList') {
[ ].filter.call(mutation.addedNodes, function (node) {
return node.nodeName == 'SCRIPT' && node.src.length;
}).forEach(function (script) {
script.addEventListener('load', function () {
console.log('finished loading', script.src);
});
});
}
});
});
var config = { subtree: true, childList: true };
var target = document;
observer.observe(target, config);