3

好吧,我使用 joomla 的 ScriptMerge 将所有 js 文件合并为一个,但现在我得到 window.addEvent 不是挤压框初始化的函数,除此之外一切正常...我注意到挤压框代码是唯一的 javascript块在头部标记中,所有其他脚本都被合并并移动到正文...当我单击打开挤压框的按钮时它当然不会打开,但是当我再次单击它时它会正常打开...有人有吗一个如何解决这个错误的想法?可能是因为现在在合并的 js 文件中调用了 mootools 核心,而不是在头部,所以挤压框代码返回错误,因为它没有 mootools 核心?

4

1 回答 1

4

有您的问题:您在脚本上使用async属性 - async意味着脚本将加载并且不会像默认行为那样保持 dom 执行(没有asyncdefer)。window.addEvent因此,当您没有将mootools加载到页面时尝试调用,这就是您收到undefined.

2 解决问题的方法:

  1. 删除async属性以强制脚本保持直到加载,然后继续执行 dom。
  2. 将事件添加到脚本标记onload并在那里执行脚本的其余部分:

<script src="http://tereni.me/cache/plg_scriptmerge/975e10ecd911c8ca09713d1120c51a6d.js" async type="text/javascript" onload="onLoadScript();"></script>

然后在另一个脚本标签中:

function onLoadScript(){
        window.addEvent('domready',function(){
            alert('dom is ready');
        });
    }
于 2013-04-23T18:39:29.523 回答