JQuery AJAX, используя «адреса», чтобы обновить URL для закладки - PullRequest
0 голосов
/ 30 марта 2010
$("document").ready(function(){
    contM = $('#main-content');
    contS = $('#second-content');
    $(contM).hide();
    $(contS).hide();
    function loadURL(url) {
        console.log("loadURL: " + url);
        $.post(url,{post_loader: 1},{post_loader: 1}, function(data){
                                                               $(contM).html($(data));
                                                               $(contM).show();
                                                               });
    }


    // Event handlers
    $.address.init(function(event) {
        console.log("init: " + $('[rel=address:' + event.value + ']').attr('href'));
    }).change(function(event) {
        $.post($('[rel=address:' + event.value + ']').attr('href'), {post_loader: 1}, function(data){
                                                                                               $(contM).html($(data));
                                                                                               $(contM).show();
                                                                                               });
        console.log("change");
    })

    $('.update-main a').click(function(){
        loadURL($(this).attr('href'));
    });
});

Я использую этот код для звонков на сервер для обновления основного содержимого веб-страницы. Все отлично работает в Google Chrome, но не работает должным образом в Firefox.

Странно то, что когда у меня открыта консоль для наблюдения за взаимодействием с сервером, приложение работает нормально, только когда оно закрыто, возникают проблемы: скрипт начинает связываться с сервером, но до того, как получает данные, браузер переходит на исходный URL.

Я получаю эту ошибку в консоли firebug: e.success.call не является функцией Webdev / lostine / WP-содержание / темы / lostine / JS / JQuery-1.4.1.min.js Линия 121

есть идеи?

Ответы [ 2 ]

0 голосов
/ 30 марта 2010

Для работы с различными браузерами с консолью и без нее я использую слегка адаптированную версию оболочки Пола Ирриша, http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog:

window.log = function () 
{
    if (window.console) {
        if (console.firebug) {
            console.log.apply(console, Array.prototype.slice.call(arguments));
        } else {
            console.log.call(console, Array.prototype.slice.call(arguments));
        }
    }
};
0 голосов
/ 30 марта 2010

Как прокомментировал wesgarrison , console не всегда присутствует в FireFox, как в Chrome, и вы получите ошибку console is undefined. Вам необходимо закомментировать строки console.log(), когда они не отлаживаются, или заключить их в проверку if(console){}.

Причина, по которой это работает, когда консоль отсутствует ... console определяется тогда, без ошибок:)

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