2014-03-28 98 views
0

我使用Joomla 2.5.19,因爲它與JQuery產生衝突,所以我刪除了Mootools。我也禁用了caption.js。在Joomla 2.5中禁用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']);

我該如何擺脫這個?

+1

如果我正確地記住,工具提示要麼通過核心庫文件或佈局導入。我會小心完全禁用JS,因爲一些Joomla功能需要它 – Lodder

+0

我只在主頁禁用它。 –

回答

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.

1

如果您正在開發自己的擴展,實在沒必要​​刪除Mootools的或使用第三方第三方擴展來加載jQuery。 Mootools在Joomla中尤其使用,尤其是版本2.5.x;因此刪除它可能會對使用核心功能時的預期行爲產生不利影響。如果您需要使用jQuery,只需將任何jQuery代碼包裝在IIFE中,如下所示:

function($) { 

    // jQuery code goes here 

})(jQuery);