5
回答
js动态加载问题 标题changchangchang
注册华为云得mate10,2.9折抢先购!>>>   
页面:
<html>
	<head>
		<title>xxoo</title>
		<script src="test.js"></script>
		<script type="text/javascript">alert(3)</script>
	</head>
	<body></body>
<html>
test.js:
	var myHead1 = document.getElementsByTagName('head').item(0);
	var myScript1= document.createElement("script");
	myScript1.type = "text/javascript";
	myScript1.text = "alert(1)";
	myHead1.appendChild(myScript1);
	
	var myHead2 = document.getElementsByTagName('head').item(0);
	var myScript2= document.createElement("script");
	myScript2.type = "text/javascript";
	myScript2.text = "alert(2)";
	myHead2.appendChild(myScript2);

问题:

怎么才能将动态的将<script>xx</script>加载到页面的<script></script>的后面,</head>的前面?

理想效果:

<无标签>
举报
共有5个答案 最后回答: 3年前

(function init() {

//.......

})();

这个是不是和jquery的$(function(){});相似?

如果是一样的话,很明显啊,看看js执行顺序

http://www.cnblogs.com/zjfazc/archive/2012/08/17/2643611.html

模拟下google那个动态加载写法就行了。

(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);
  })();



引用来自“CWhite”的评论

(function init() {

//.......

})();

这个是不是和jquery的$(function(){});相似?

如果是一样的话,很明显啊,看看js执行顺序

http://www.cnblogs.com/zjfazc/archive/2012/08/17/2643611.html

(function init() {

//.......

})();

加不加无所谓,现在不纠结执行顺序,我就想知道咋把动态加载到</head>前面

<html>
	<head>
		<title>xxoo</title>
		<script src="jquery-1.7.2.js"></script>
		<script src="test.js"></script>
		<script type="text/javascript">alert(3)</script>
	</head>
	<body></body>
<html>
$(function(){
	var myHead2 = document.getElementsByTagName('head').item(0);
	var myScript2= document.createElement("script");
	myScript2.type = "text/javascript";
	myScript2.text = "alert(2)";
	myHead2.appendChild(myScript2);

	var myHead1 = document.getElementsByTagName('head').item(0);
	var myScript1= document.createElement("script");
	myScript1.type = "text/javascript";
	myScript1.text = "alert(1)";
	myHead1.appendChild(myScript1);
});
这样就可以了!

顶部