我有一个网页index.php,我想动态地向这个页面添加和删除JS文件
到目前为止,我做到了,
<script type="text/javascript" src="" id="dynamic_files"></script>
我原本计划通过
更改此脚本标记的srcfunction loadJsfiles( filename ){
var filePath = 'include/js/'+filename;
$("script#dynamic_files").attr('src',filePath);
};
并且包含的js文件中包含脚本标记:
document.write('<script type="text/javascript" src="include/js/profile1.js"></script>');
document.write('<script type="text/javascript" src="include/js/profile2.js"></script>');
document.write('<script type="text/javascript" src="include/js/profile3.js"></script>');
document.write('<script type="text/javascript" src="include/js/profile4.js"></script>'); –
我的问题是,
将脚本标签打印到我的文档页面,如果是,我该怎么删除它
答案 0 :(得分:1)
加载后你不能做document.write
看这里:
Javascript: Run "document.write" in createElement script failed
您会注意到您的页面将被擦除。
使用哪种方法插入脚本无关紧要,您需要阻止它们使用document.write或者用自定义方法替换document.write。
也许你想使用类似require.js的东西 - 这是一个javascript加载器(感谢Jared提供了比 https://developers.google.com/loader/)
答案 1 :(得分:0)
更好的例子是谷歌分析
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
答案 2 :(得分:0)
这就是我的所作所为:
var dynScript,dynParent;
function createjsfile(filename) {
var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", filename + "?noxhr="+(new Date()).getTime());
return fileref;
}
function loadjsfile(filename){
dynScript = createjsfile(filename);
dynParent = document.getElementsByTagName("head")[0];
dynParent.appendChild(dynScript);
}
function replacejsfile(filename) {
var newelement = createjsfile(filename);
dynParent.replaceChild(newelement, dynScript);
dynScript = newelement;
}
在body.load
事件中,我loadjsfile("script.js")
当我想重新加载replacejsfile("script.js")