html部分<!doctype html>
<html>
<head>
<meta charset="gb2312">
<title>无标题文档</title>
</head><body>
<div id="q"></div>
<a href="javasciprt:;" onClick="ss()">点我</a>
<script type="text/javascript">
function ss(){
document.getElementById("q").innerHTML = "<script src=\"1.js\"><\/script>";
}
</script>
</body>
</html>
1.js内容document.write("slx");
我想在innerHTML后不刷新页面将1.js加载一遍
上面的方法只是在#q中插入了字符串
请问是否有可能

解决方案 »

  1.   

    innerHTML,只是插入html并不会让1.js执行<script type="text/javascript">
    function ss(){
        //document.getElementById("q").innerHTML = "<script src=\"1.js\"><\/script>";
        var sE= document.createElement("script"); 
         sE.type = "text/javascript"; 
         sE.src="1.js"; 
         document.getElementById("q").appendChild(sE); 
    return false;
    }
    </script>
      

  2.   

    innerHTML不会让<script>中的js文件加载。要用创建script元素的方法加载 document.createElement("script");
    还有1.js内容也有问题。
    document.write()一般只在页面加载完成之前使用。
    当页面加载完成之后,就不要用document.write()了
    再用document.write()就是重新创建一个新的页面。
    应该用.innerHTML或.innerText。
      

  3.   

    用 script src 加载 jsjs 尽量不用 document.write
      

  4.   

    script 的src属性在现代浏览器下只会加载1次,ie7/6/5 才会再次加载并执行。所以你用innerHTML的话,请不要再script中设置src属性。在你需要的的时候再设置