在Joomla 2.5中禁用JS脚本

时间:2014-03-28 12:18:09

标签: php joomla joomla2.5

我正在使用Joomla 2.5.19,因为它与JQuery产生冲突,所以我删除了Mootools。我也禁用了caption.js。

现在,在每个页面上,头部分都添加了以下脚本:

<script type="text/javascript">
window.addEvent('domready', function() {
            $$('.hasTip').each(function(el) {
                var title = el.get('title');
                if (title) {
                    var parts = title.split('::', 2);
                    el.store('tip:title', parts[0]);
                    el.store('tip:text', parts[1]);
                }
            });
            var JTooltips = new Tips($$('.hasTip'), { maxTitleChars: 50, fixed: false});
        });
  </script>

这引发了错误:

Uncaught TypeError: Object [object global] has no method 'addEvent' 

如何摆脱这种情况?

我按照说明here删除了:

JHtml::_('behavior.caption');

来自components/com_content/controller.php

但没有运气。我也试过包括unset($this->_scripts['/media/system/js/caption.js']);

如何摆脱这种情况?

3 个答案:

答案 0 :(得分:1)

你不应该删除Mootools,因为冲突,你可以使用jQuery Easy插件。访问http://extensions.joomla.org/extensions/core-enhancements/performance/jquery-scripts/18327

答案 1 :(得分:1)

如果您正在开发自己的扩展,则实际上不需要删除Mootools或使用第三方扩展来加载jQuery。 Mootools在Joomla中使用很多,尤其是2.5.x版;因此,在使用核心功能时,删除它可能会对预期行为产生不利影响。如果你需要使用jQuery,只需在IIFE周围包装任何jQuery代码,如下所示:

function($) {

    // jQuery code goes here

})(jQuery);

答案 2 :(得分:0)

我设法删除了脚本:

<?php


// Custom script
    $document =& JFactory::getDocument();

    // Remove call to JTooltips
    $document->_script = preg_replace('window\.addEvent\(\'domready\',\s*function\(\)\s*{\s*\$\$\(\'.hasTip\'\).each\(function\(el\)\s*{\s*var\s*title\s*=\s*el.get\(\'title\'\);\s*if\s*\(title\)\s*{\s*var\s*parts\s*=\s*title.split\(\'::\',\s*2\);\s*el.store\(\'tip:title\',\s*parts\[0\]\);\s*el.store\(\'tip:text\',\s*parts\[1\]\);\s*}\s*}\);\s*var\s*JTooltips\s*=\s*new\s*Tips\(\$\$\(\'.hasTip\'\),\s*{\s*maxTitleChars:\s*50,\s*fixed:\s*false}\);\s*}\);', '', $document->_script);


?>

感谢post.