2011-02-27 67 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文件,然后加载新的。