2011-02-27 33 views
3

當我在我的Magento網站中加載jquery時,我的自定義JavaScript文件在Google chrome中播放效果不錯。這個問題似乎只出現在谷歌瀏覽器中。我已經在Linux Ubuntu 10.10(chrome 10.0.648.114 beta)和Windows XP(chrome 9.0.597.98)中測試了這個問題。 FF,Safari,IE似乎沒有這個問題。magento javascript與jquery玩不好

當jQuery被添加到要包含的JS文件時,當發送硬刷新(強制js文件的200請求)時,我的個人JS文件不起作用。如果我定期刷新(對js文件的304請求)並從緩存中加載它,那麼它就可以工作。

我竟然在我的magento站點外創建了一個虛擬頁面,當我從magento站點包含JS文件時,仍然遇到此問題。但是,如果我將JS文件移到magento站點外面,它工作正常嗎?

我在我的magento管理中禁用了緩存,據我所知沒有任何模塊或自定義代碼/插件會影響要包含的JS文件。

這裏是坐在我的服務器的根目錄

唯一gearlists.js已經在裏面,是

alert('external');

所以我希望我的虛擬頁面的例子當我加載該頁面時出現兩個警報彈出窗口。但在硬刷新時,我只能得到一個彈出窗口。 「內部」。

如果我轉身,做一個常規刷新,無論JS文件從瀏覽器緩存加載W/304狀態碼,我得到兩個彈出窗口「對外」,那麼「內部」

不工作,硬刷新

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
    <head> 
     <title>test</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script type="text/javascript" src="http://VIRTUAL_SERVER_FOR_MAGENTO_SITE/catalog/js/jquery/jquery-1.5.1.js"></script> 
     <script type="text/javascript" src="http://VIRTUAL_SERVER_FOR_MAGENTO_SITE/catalog/js/ads/gearlists.js"></script> 
     <script type="text/javascript"> 
      alert('Internal'); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 

總是工作

在這個例子中,如果我移動JS文件了Magento的虛擬服務器,進入RO我的服務器的所有目錄都一直按預期工作。 2個彈出窗口顯示瓦特/每個頁面刷新

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
    <head> 
     <title>test</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script type="text/javascript" src="http://localhost/jquery-1.5.1.js"></script> 
     <script type="text/javascript" src="http://localhost/gearlists.js"></script> 
     <script type="text/javascript"> 
      alert('here'); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 

現在,如果我從我的測試中刪除了jQuery文件,我自定義的js文件一直工作正常,其無論從withing我的Magento VS或者沒有送達......總有兩個彈出窗口。

我有點卡在什麼可能導致此。任何想法將不勝感激。

+1

是否有任何javascript錯誤報告?在這種情況下jQuery加載成功嗎? – 2011-02-27 20:08:07

+0

我沒有得到任何JS錯誤,jQuery在兩種情況下都成功加載。 – veilig 2011-02-27 20:54:33

+3

這些文件存儲在哪個文件夾中?它是'catalog/js /'還是Magento安裝在'catalog /'中,並且這些文件是在'js /'中?檢查他們所在的文件夾是否存在可能拒絕訪問或重寫的.htaccess文件。檢查正在提供的文件的內容。你知道Magento帶有Prototype,而jQuery需要['noConflict'](http://api.jquery.com/jQuery.noConflict/)(假設你可以讓其餘部分工作)? – clockworkgeek 2011-02-27 23:45:31

回答

2

好的,我明白了這一點。愚蠢的錯誤,但它花了一些時間。該文件的目錄是該網站名稱的首字母縮寫js/ads/gearlists.js

事實證明我的adblock擴展名使用正則表達式來查找單詞「ads」並將我的腳本過濾掉。當我調整目錄從廣告adsinc問題就消失了。

有道理,因爲我的chrome擴展同步,所以id在linux或windows中無法正常工作。

+0

我已經有過幾次了!感謝您發佈回覆! – 2015-04-12 21:45:53

1

兩個小技巧:

您可能要安裝的Magento連接mxperts jQuery插件擴展 - 它是免費的,並有助於調試jQuery的腳本,人們把你的Magento網站。

谷歌瀏覽器沒有已知的方式刷新緩存 - 你可以重命名你的js文件,然後加載新的。