浏览器对于JS的解析方式是:加载完立马执行。以下是一种hack手段,能实现只加载但不马上执行
本质上利用了缓存的方法。
<script language="javascript"type="text/javascript">
functioncachejs(script_filename){
varcache = document.createElement('object');
cache.data = script_filename;
cache.id = "coolshell_script_cache_id";
cache.width = 0;
cache.height = 0;
document.body.appendChild(cache);
}
functionloadjs(script_filename) {
varscript = document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src', script_filename);
script.setAttribute('id','coolshell_script_id');
script_id = document.getElementById('coolshell_script_id');
if(script_id){
document.getElementsByTagName('head')[0].removeChild(script_id);
}
document.getElementsByTagName('head')[0].appendChild(script);
}
functionLoadJS(){
varscript = './alert.js';
loadjs(script);
}
</script>
...
<p style="cursor: pointer" οnclick="LoadJS()">Click to load alert.js </p>
...
...
<script>
cachejs('./alert.js');
</script>