2014-01-06 2 views
0

Для щелчка этой ссылки
предотвратить дефолт, работая в Firefox, но не в хроме

<a id="c2c" href="#" class='test' style="margin-left:300px;"><img src="img.png" height="400" width="480" alt="Click Here"></a> 

Я написал этот код

$('#c2c').click(function(event){ 
    event.preventDefault();      
     window.location.href = "http://google.com"; 
    $.get("test.php?testnum=121212121",function(data){ 
     if(data == "no") window.location.href = "failure.html"; 
     else { 
       window.location.href = "http://www.abc.com/get_data.php?data="+data; 
        }    
}); 

На этом щелчке ссылки, я
- поведение по умолчанию по умолчанию
- установка href lo катион
- отправив запрос GET с некоторым Params на другую страницу
Все они работают отлично в FireFox, но когда я использую попробовать этот код в Chrome/опере, она не 3- sending the get request и в консоли ошибок я могу видеть, что Браузер показывает, что «Request Aborted».
Любая помощь?

ПРИМЕЧАНИЕ: Насколько я могу расследовать это из-за того, что он не работает event.preventDefault();, Если я прав, то как я могу сделать это работать ИЛИ каково было бы решение?

+2

Вы меняете текущую страницу после того, как вы задали запрос? Ну, я полагаю, Chrome просто отменяет ваш запрос, потому что вы пытаетесь изменить страницу (так что ожидающие запросы бесполезны). –

+1

Ya, почему это: 'window.location.href =" tel: 1111111 "; ' –

+0

, но он не должен прерываться, поскольку я использую' preventDefault'. Должен быть способ – Despicable

ответ

-4

Изменить якорь HREF

href="#" 

в

href="javascript:void(0);" 
+2

Не '' 'совершенный действительный' href'? На самом деле я не думаю, что это его проблема. –

+0

Согласен, это не будет иметь никаких функциональных различий, поскольку он явно вызывает 'preventDefault' – CodingIntrigue

+0

Это не будет иметь большого значения. Между прочим, псевдо-протокол 'javascript:' ужасен. – Ryan

1

вы должны удалить location.href:

('#c2c').click(function(event){ 
    event.preventDefault();      
    // window.location.href = "http://google.com"; remove this line or move it somewhere in the response callback of your ajax request 
    $.get("test.php?testnum=121212121",function(data){ 
    if(data == "no") { 
     window.location.href = "failure.html"; 
    } else { 
     window.location.href = "http://www.abc.com/get_data.php?data="+data; 
    }    
}); 

Chrome прерывает запрос AJAX, потому что window.location.href = "http://google.com"; заставляет браузер загружать google.com. Я не могу дать вам полный образец кода, потому что я не уверен, чего вы пытаетесь достичь.

Смежные вопросы