我在head
标记中使用它:
<script src="js/lightbox.js"></script>
是否可以从标题中删除此内容并使用onload()
加载此文件?
<body onload="...">...</body>
注意:这不是一个函数,它是一个带有多个函数的外部js文件。
谢谢!
答案 0 :(得分:4)
<script>
function loadJS(src, callback) {
var s = document.createElement('script');
s.src = src;
s.async = true;
s.onreadystatechange = s.onload = function() {
var state = s.readyState;
if (!callback.done && (!state || /loaded|complete/.test(state))) {
callback.done = true;
callback();
}
};
document.getElementsByTagName('head')[0].appendChild(s);
}
loadJS('/script/script.js', function() {
// put your code here to run after script is loaded
});
</script>
我仍然认为最好加载jQuery并使用$ .getScript,因为你有很多好东西。
可以在身体负荷上调用它
答案 1 :(得分:2)
onload="blabla();"
function blabla()
{
$.getScript( 'url to your js file', function( data, textStatus, jqxhr ) {
// do some stuff after script is loaded
});
}
您可以在此处了解更多信息
答案 2 :(得分:2)
如果你想在没有jQuery的情况下这样做,请使用此
function addScript(filename)
{
var scriptBlock=document.createElement('script')
scriptBlock.setAttribute("type","text/javascript")
scriptBlock.setAttribute("src", filename)
document.getElementsByTagName("head")[0].appendChild(scriptBlock)
}
并使用<body onload="addScript('myFile.js')"
进行调用。如果要加载多个文件,可以放入一个包装器,它会添加所需的所有文件。
答案 3 :(得分:1)
使用$(document).ready() 并从此函数加载JavaScript。这听起来很疯狂,但可以做到。请关注http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
答案 4 :(得分:0)
var JS = {
load: function(src, callback) {
var script = document.createElement('script'),
loaded;
script.setAttribute('src', src);
if (callback) {
script.onreadystatechange = script.onload = function() {
if (!loaded) {
callback();
}
loaded = true;
};
}
document.getElementsByTagName('head')[0].appendChild(script);
}
};
// Example with callback
JS.load("http://www.someawesomedomain.com/some.js", function() {
//Do your thing.
});