function loadJs (layerid, jsurl) {
var oScriptEl, oTimeoutHDL, oHead;
oScriptEl = document.createElement("script");
oScriptEl.type = "text/javascript";
oScriptEl.language = "javascript";
oScriptEl.src = jsurl;
oScriptEl.onreadystatechange = doCallback; oScriptEl.onload = function()
{
this.readyState = "complete";
doCallback(); 
};
 
oTimeoutHDL = window.setTimeout(doError,SCRIPT_TIMEOUT);
document.getElementById(layerid).appendChild(oScriptEl); function doCallback()
{
if (oScriptEl.readyState == "complete" || oScriptEl.readyState == "loaded")
{
oScriptEl.onload = oScriptEl.onreadystatechange = new Function();
window.clearTimeout(oTimeoutHDL);
}
};
 
function doError()
{
oScriptEl.parentNode.removeChild(oScriptEl);
};
}
用法: loadJs('flashAD', 'http://ads.abc.cc/code/00/00/17/17.js');主要想实现在一个层里可以动态的加载一个js文件,实现在网页的底部加载广告的效果.
但上面用的时候整个页面会只显示这个广告,其它所有内容都没有了,且这个js文件一直在加载中...

解决方案 »

  1.   

    js文件里如果是用的document.write('abc')实现内容的输出,就会冲掉现有的内容。因为这时候文档已经render完了。比如你在地址栏输入:javascript:document.write('abc')会发现页面没了。
    这种类型的js只能静态嵌入在html里。一直加载应该是由于flash引起的。
      

  2.   


    function doCallback()
        {
            if (oScriptEl.readyState == "complete" || oScriptEl.readyState == "loaded")
            {
                oScriptEl.onload = oScriptEl.onreadystatechange = new Function();
                window.clearTimeout(oTimeoutHDL);//可能是这里的没有执行成功,看看这个函数执行完了冒
            }
        };
      

  3.   


    不是太懂你的意思的,在js里用document.write输出没有问题的吧,况且这个页面也没有flash的
      

  4.   

    本帖最后由 net_lover 于 2010-07-06 14:54:59 编辑