magento javascript与jquery玩得不好

时间:2011-02-27 19:48:50

标签: javascript jquery google-chrome magento

在我的Magento网站上加载jquery时,让我的自定义JavaScript文件在Google Chrome中玩得很好,我遇到了一些问题。此问题似乎只出现在Google Chrome中。我已经在Linux Ubuntu 10.10(chrome 10.0.648.114 beta)和Windows XP(chrome 9.0.597.98)中测试了这个问题。 FF,Safari,IE似乎没有这个问题。

当jQuery被添加到要包含的JS文件时,我的个人JS文件在发送硬刷新时不起作用(强制执行js文件的200个请求)。如果我定期刷新(js文件的304请求)并从缓存中加载它,那么它可以工作。

我已经在我的magento站点之外创建了一个虚拟页面,当我从magento站点包含JS文件时,我仍然遇到这个问题。但是,如果我将JS文件移到magento站点之外,它可以正常工作吗?

我的magento管理员禁用了缓存,据我所知,没有任何模块或自定义代码/插件会影响要包含的JS文件。

以下是我的虚拟页面的示例,该页面位于我的服务器的根目录中

gearlists.js中唯一拥有的是

alert('external');

所以当我加载该页面时,我会期待两个警告弹出窗口。但是在努力刷新的时候,我只会得到一个弹出窗口。 “内部”。

如果我转身并定期刷新,两个JS文件都从浏览器缓存加载到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虚拟服务器移出并移动到我的服务器的根目录中,一切都会按预期工作。每次刷新页面都会显示两个弹出窗口

<!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文件总是正常工作,无论是否使用我的magento VS服务......总会有两个弹出窗口。

我有点卡在可能造成这种情况的地方。任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:2)

好的,我想出来了。愚蠢的错误,但它花了一些时间。文件的目录是站点名称js/ads/gearlists.js

的首字母

我的adblock扩展程序使用正则表达式查找“​​广告”一词,并将我的脚本过滤掉。当我将目录从广告调整为 adsinc 时,问题就消失了。

因为我的chrome扩展程序已同步,因此id在linux或windows中无效。

答案 1 :(得分:1)

两个提示:

您可能希望在Magento Connect上安装mxperts jquery插件扩展 - 它是免费的,可以帮助调试人们在Magento站点上放置的jquery脚本。

Google Chrome无法更新缓存 - 您可以重命名js文件,然后加载新文件。