代码1:
<html>
<head>
<title></title>
</head>
<body>
</body>
<script src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script>
</html>
上面的代码1,加载引用的地址后,会输出一个js和一个css会继续加载
代码2:
<html>
<head>
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var script = document.createElement('script');
script.src = 'http://api.map.baidu.com/api?key=&v=1.1&services=true';
script.type = 'text/javascript';
document.head.appendChild(script);
</script>
</html>
上面的代码2,加载引用的地址后,虽然输出了两个doucment.write('xxx'),但是不会异步加载,
求解答
13 个解决方案
#1
求解答,在线等
#2
不会异步加载是什么意思?
#3
就是引用的http://api.map.baidu.com/api?key=&v=1.1&services=true这个地址,加载后,这个脚本会输出两个document.write,就不会再加载了。
可以是下我贴的两段代码,然后看下载的资源就很清楚了
可以是下我贴的两段代码,然后看下载的资源就很清楚了
#4
当js加载后文档已经输出完毕,这时候再document.write,就是破坏性输出了,已经存在的dom都将被销毁,也就是说当前的js文件也将失效。不用document.write就行了
#5
但是我引用的这个是百度的api,必须要这么用呀,又不能让百度改的,有什么解决办法?求指教
#6
<script type="text/javascript">
document.write('<script type="text/javascript" src="script/loadScript.js"><\/script>');
</script>
#7
。。。把里面src改一下。上面是我的测试用的
#8
话说回来,你的代码一不是可以么?
干嘛要换成第二种方式呢。
干嘛要换成第二种方式呢。
#9
直接引用那个css文件和js文件试试,我测试是加载了,能不能用不知道。
function loadjscssfile(filename,filetype){
if(filetype == "js"){
var fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src",filename);
}else if(filetype == "css"){
var fileref = document.createElement('link');
fileref.setAttribute("rel","stylesheet");
fileref.setAttribute("type","text/css");
fileref.setAttribute("href",filename);
}
if(typeof fileref != "undefined"){
document.getElementsByTagName("head")[0].appendChild(fileref);
}
}
loadjscssfile("http://api.map.baidu.com/res/11/bmap.css","css");
loadjscssfile("http://api.map.baidu.com/getscript?v=1.1&ak=&services=true&t=20121127154638","js");
#10
因为网站是外框不变,我异步加载里面的内容的,第一种方式的话必须引用那个脚本了,第一次页面加载会比较慢,所以采用第二种方式。
直接引用百度输出的两个write这个我试过,但是有没更好的只引用原来的一个js 的方式?
#11
有没有只引用一个的方式呢?求最佳
#12
这个分开引用,试过了,不执行
#13
楼主解决了吗,我遇到同样的问题,求解答
#1
求解答,在线等
#2
不会异步加载是什么意思?
#3
就是引用的http://api.map.baidu.com/api?key=&v=1.1&services=true这个地址,加载后,这个脚本会输出两个document.write,就不会再加载了。
可以是下我贴的两段代码,然后看下载的资源就很清楚了
可以是下我贴的两段代码,然后看下载的资源就很清楚了
#4
当js加载后文档已经输出完毕,这时候再document.write,就是破坏性输出了,已经存在的dom都将被销毁,也就是说当前的js文件也将失效。不用document.write就行了
#5
当js加载后文档已经输出完毕,这时候再document.write,就是破坏性输出了,已经存在的dom都将被销毁,也就是说当前的js文件也将失效。不用document.write就行了
但是我引用的这个是百度的api,必须要这么用呀,又不能让百度改的,有什么解决办法?求指教
#6
<script type="text/javascript">
document.write('<script type="text/javascript" src="script/loadScript.js"><\/script>');
</script>
#7
。。。把里面src改一下。上面是我的测试用的
#8
话说回来,你的代码一不是可以么?
干嘛要换成第二种方式呢。
干嘛要换成第二种方式呢。
#9
直接引用那个css文件和js文件试试,我测试是加载了,能不能用不知道。
function loadjscssfile(filename,filetype){
if(filetype == "js"){
var fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src",filename);
}else if(filetype == "css"){
var fileref = document.createElement('link');
fileref.setAttribute("rel","stylesheet");
fileref.setAttribute("type","text/css");
fileref.setAttribute("href",filename);
}
if(typeof fileref != "undefined"){
document.getElementsByTagName("head")[0].appendChild(fileref);
}
}
loadjscssfile("http://api.map.baidu.com/res/11/bmap.css","css");
loadjscssfile("http://api.map.baidu.com/getscript?v=1.1&ak=&services=true&t=20121127154638","js");
#10
话说回来,你的代码一不是可以么?
干嘛要换成第二种方式呢。
因为网站是外框不变,我异步加载里面的内容的,第一种方式的话必须引用那个脚本了,第一次页面加载会比较慢,所以采用第二种方式。
直接引用百度输出的两个write这个我试过,但是有没更好的只引用原来的一个js 的方式?
#11
直接引用那个css文件和js文件试试,我测试是加载了,能不能用不知道。
function loadjscssfile(filename,filetype){
if(filetype == "js"){
var fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src",filename);
}else if(filetype == "css"){
var fileref = document.createElement('link');
fileref.setAttribute("rel","stylesheet");
fileref.setAttribute("type","text/css");
fileref.setAttribute("href",filename);
}
if(typeof fileref != "undefined"){
document.getElementsByTagName("head")[0].appendChild(fileref);
}
}
loadjscssfile("http://api.map.baidu.com/res/11/bmap.css","css");
loadjscssfile("http://api.map.baidu.com/getscript?v=1.1&ak=&services=true&t=20121127154638","js");
有没有只引用一个的方式呢?求最佳
#12
直接引用那个css文件和js文件试试,我测试是加载了,能不能用不知道。
function loadjscssfile(filename,filetype){
if(filetype == "js"){
var fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src",filename);
}else if(filetype == "css"){
var fileref = document.createElement('link');
fileref.setAttribute("rel","stylesheet");
fileref.setAttribute("type","text/css");
fileref.setAttribute("href",filename);
}
if(typeof fileref != "undefined"){
document.getElementsByTagName("head")[0].appendChild(fileref);
}
}
loadjscssfile("http://api.map.baidu.com/res/11/bmap.css","css");
loadjscssfile("http://api.map.baidu.com/getscript?v=1.1&ak=&services=true&t=20121127154638","js");
有没有只引用一个的方式呢?求最佳
这个分开引用,试过了,不执行
#13
楼主解决了吗,我遇到同样的问题,求解答