javascript - FF 2.0.x 中的脚本加载参数

标签 javascript firefox

大家好,

我尝试使用以下代码在页面上显式加载effects.js 和 builder.js Scriptaculous 库:

<script type="text/javascript" src="/javascripts/scriptaculous.js?load=builder,effects"></script>

这在 FF 3.0.x、IE7 和 Opera 9.6.x 中就像一个魅力。但它在 Firefox 2.0.x 中不起作用。这些库永远不会被加载。为了让它们在 FF 2.0.x 中加载,我必须使用两个额外的 <script/> 标记显式引用它们,即:

<script type="text/javascript" src="/javascripts/scriptaculous.js?load=builder,effects"></script>
<script type="text/javascript" src="/javascripts/builder.js"></script>
<script type="text/javascript" src="/javascripts/effects.js"></script>

有谁知道 FF 2.0 和 3.0 之间的差异导致了这种行为吗?有更好的办法解决我的问题吗?

感谢您的帮助!

最佳答案

我今天喝了太多咖啡,所以我想我会尝试一下。

一种可能性是 scriptaculous.js 中的 load 函数未正确进行处理以包含作为参数传递给它的库(scriptaculous.js? load=builder,effects)

尝试添加一个警报,看看 scriptaculous.js 中的加载函数是否正在被输入,如果是,那么该进程可能不会在 FF2 上执行预期的操作:

load: function() {
    alert('In the load function!');
    ...rest of code here...

如果不是,那么(也许)firefox 2 不想执行加载。

加载的最后一部分似乎完成了包含其他库的工作:

$A(document.getElementsByTagName("script")).findAll( function(s) {
      return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))
    }).each( function(s) {
      var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');
      var includes = s.src.match(/\?.*load=([a-z,]*)/);
      (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
       function(include) { Scriptaculous.require(path+include+'.js') });
    }); 

从上面的代码中,我可以看到 includes 变量应该解析出库名称,看看是否被分配了任何内容,将其替换为以下内容:

var includes = s.src.match(/\?.*load=([a-z,]*)/);
alert(includes[0] + ' ' + includes[1]);

这应该能让您更好地了解正在发生的事情。虽然这是一个有趣的小问题,但我肯定会采用您提出的解决方案:

<script type="text/javascript" src="/javascripts/scriptaculous.js"></script>
<script type="text/javascript" src="/javascripts/builder.js"></script>
<script type="text/javascript" src="/javascripts/effects.js"></script>

关于javascript - FF 2.0.x 中的脚本加载参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697647/

相关文章:

javascript - three.js 二维文本 Sprite 标签

javascript - jQuery 检查给定 div 中每个输入的值

javascript - 在 jquery 中旋转图像时需要概念?

javascript - 如何使用jquery最接近应用css

javascript - Webstorm 实时编辑不适用于外部 JavaScript 文件

javascript - 如何在 Firefox 中自动聚焦 RTE 编辑器?

android - contacts2.db 是空的。但我有两个联系人,可以使用内容提供商检索它们

java - 这是正确的吗 - FirefoxDriver driver = new FirefoxDriver();?

google-chrome - Google Web Fonts 和其他字体在 Firefox 中显得粗体和锯齿状

asp.net - 浏览器在本地主机加载时自动滚动到页面底部