Javascript适用于除Chrome以外的所有浏览器

时间:2011-08-15 20:40:18

标签: javascript google-chrome

我有一个简单的javascript,当按下按钮时会加载一个新的样式表...它可以在除Chrome之外的每个浏览器中正常工作。它甚至可以在Safari中运行,它共享Webkit引擎。

以下是我的网页链接:www.evanjackson.net/index-new.html

我研究了这个问题,我尝试了很多东西,但无法弄明白。该脚本位于文件“initial.js”中。任何帮助将不胜感激!

相关代码:

<div onclick="hideStuff('button1'); showStuff('button2'); loadjscssfile('css/custom-theme-reskin2/reskin.css','css'); return false;" id="button1" style="display: block;">
                &nbsp;
</div>

function loadjscssfile(filename, filetype){
    if (filetype=="js"){ //if filename is a external JavaScript file
        var fileref=document.createElement('script')
        fileref.setAttribute("type","text/javascript")
        fileref.setAttribute("src", filename)
    }
    else if (filetype=="css"){ //if filename is an external CSS file
        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)
}

2 个答案:

答案 0 :(得分:3)

我也遇到过这种情况,可能会有一些见解。我在Mac OSX Lion上使用Chrome 13.0.782.112。

浏览器限制每个域可以为外部文件发出的请求数。如果您打开Chrome的开发人员工具并查看网络选项卡,则可以看到针对.css文件的请求,并将其置于挂起状态。仔细观察,你会发现还有大约十几个其他文件仍试图从同一个域加载。我的猜测是这些文件中的一个或多个要么非常大,要么服务器没有响应。这将导致浏览器无法加载来自同一域的其他文件。

<强>更新
请求此文件:http://www.evanjackson.net/music/track_1.m4a和许多其他.m4a轨道,服务器没有响应。由于.css文件位于同一个域中,因此Chrome正在等待首先加载这些.m4a文件。

在完全加载之前,某些版本的Chrome似乎无法处理.m4a文件。

答案 1 :(得分:0)

由于没有足够的信息,我只能猜测:

我想,您启用的任何扩展程序都会与您的代码发生冲突,或者您的缓存中存在一些错误的代码。

您可以尝试以下方法:

  1. 清除浏览器缓存
  2. 停用所有扩展程序
  3. 重新启动浏览器
  4. 给我们一些反馈意见; - )