我想在条件下删除一些脚本标记。在DOM中,我看到它们不存在(它们被注释掉了),但我仍然看到控制台从它们中喷出来。是否加载了脚本标签?如果是这样,有没有人为此做任何解决方法?
<script ng-if="myCondition" src="blah blah.js"></script>
答案 0 :(得分:5)
如果将它们删除也没关系。当角度引导并启动DOM操作时,所有脚本标记都将由浏览器编译。
删除脚本标记不会删除已编译的代码。
如果没有更多关于你想要完成什么的信息,或者脚本做了什么,这就是现在可以提供的所有信息。
我建议您阅读有关如何在html编译到DOM时浏览器处理网页的基础知识。它遇到带有src
的脚本标记的瞬间,就会对该文件发出请求,并且无法拦截它。
答案 1 :(得分:0)
作为一种解决方法,您可以手动插入脚本,如下所示:
function loadScript() {
var $script = document.createElement('script');
$script.src = 'blah blah.js';
$script.id = 'someId';
document.body.appendChild($script);
}
$rootScope.watch(myCondition, function(value) {
if(myCondition && !document.getElementById('someId') {
loadScript();
isScriptInserted = true;
}
});