gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 03:01:22 24 4
gpt4 key购买 nike

大家好,

我尝试使用以下代码在页面上显式加载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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com