Magento Go - jQuery работает только на странице сведений о продукте - PullRequest
0 голосов
/ 28 февраля 2012

Я добавил несколько пользовательских jQuery в статический блок нижнего колонтитула, как описано на веб-сайте Magento Go:

(function($) {
alert("lol");
})(jQuery);

И это работает только на странице продукта. На каждой другой странице сайта я получаю

jQuery is not defined
[Break On This Error]   

})(jQuery);

от Firebug. Есть идеи как это исправить?

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

Вы неправильно загружаете jQuery на всех страницах.Вот почему вы получаете сообщение об ошибке «jQuery не определен».

Я не так хорошо знаком с Magento Go - поэтому вам нужно выяснить, почему страницы продукта включают скрипт, а другие страницы нет.«т.В не размещенном решении это будет означать редактирование файла [layout] .xml.Не уверен, поможет ли это вам.

0 голосов
/ 08 июня 2013

Я знаю, что это старый вопрос, но, поскольку на него не было ответа, я решил дать свое решение.Это было неприятно, чтобы понять.

Чтобы прояснить проблему, у 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 будет загружен, и ваш скрипт будет выполнен после завершения загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...