我在Magento Go网站上记录了一些自定义jQuery到页脚静态块:
(function($) {
alert("lol");
})(jQuery);
这仅适用于产品页面。在网站上的每个其他页面上我都有
jQuery is not defined
[Break On This Error]
})(jQuery);
来自Firebug的任何想法如何解决它?
答案 0 :(得分:1)
您没有在所有页面上正确加载jQuery。这就是为什么你得到'jQuery is not defined'错误。
我对Magento Go并不熟悉 - 因此您需要找出产品页面包含脚本但其他页面不包含的原因。在非托管解决方案中,这将意味着编辑[layout] .xml文件。不确定这对你有帮助。
答案 1 :(得分:0)
我知道这是一个古老的问题,但看到它没有回答,我想我会给出我的解决方案。这很令人沮丧。
为了澄清这个问题,Magento Go有一个它使用的jQuery的基本版本。但是,它不会在每个页面上加载库。就我而言,它只在产品页面上加载。您可以添加自己的版本,并在noConflict()中运行它,方法是将代码添加到设计配置中的标题部分。但是,如果您只想在需要时加载jquery,只在Magento Go尚未加载它的页面上,以下是您的操作方法:
创建一个静态块,并输入以下代码:
最初发现的代码 http://forum.jquery.com/topic/loading-jquery-if-undefined并修改 为了我的需要
<script type="text/javascript">// <![CDATA[
/******** Load jQuery if not present *********/
if (typeof jQuery === "undefined") {
var script_tag = document.createElement('script');
script_tag.setAttribute("type","text/javascript");
script_tag.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js")
script_tag.onload = customJQ;
script_tag.onreadystatechange = function () { //Same thing but for IE
if (this.readyState == 'complete' || this.readyState == 'loaded') customJQ();
} //onreadystatechange.function
document.getElementsByTagName("head")[0].appendChild(script_tag);
} else {
customJQ();
} //if.jQuery
function customJQ() {
jQuery.noConflict();
jQuery(document).ready(function($) {
... your query here ...
});
}
// ]]></script>
然后创建一个前端应用程序,在所有页面上加载此块,并将其放在“页面底部”块参考中。我把它放在底部是为了让Magento Go有机会加载脚本,这可能没有必要。
如果已加载jquery,它将只运行您的脚本。如果没有加载,则加载jquery并在加载完成后执行脚本。