#jquery #internet-explorer
#jquery #internet-explorer
Вопрос:
Я написал ajax-запросы для изменения divs «на лету», используя приведенный ниже код:
$(document).ready(function(){
$.ajax({
type : 'GET',
url : url,
success : function(data){
$('#some_div').html(data);
}
});
});
Он отлично работает в Chrome, FF, Safari и на мобильных устройствах, но ничего не возвращает в IE7 . Я делаю что-то не так? Или это досадная ошибка IE? Если да, то как мне обойти это?
РЕДАКТИРОВАТЬ Вот HTML-файл, который я пытаюсь загрузить:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Store Notes</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<link type="text/css" href="/css/smoothness/jquery-ui-1.8.11.custom.css" rel="stylesheet" media="all" />
<link type="text/css" href="/css/colorbox.css" rel="stylesheet" />
<link type="text/css" href="/css/rep.css" rel="stylesheet" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/rep/global.js"></script>
<script type="text/javascript" src="/js/jquery.colorbox-min.js"></script>
</head>
<body><table style="width:100%;" cellspacing="12px">
<tr><td><b>Some Guy</b> <span class="small">Apr 28th</span><br />testing123</td></tr><tr><td><b>Some Guy</b> <span class="small">Apr 28th</span><br />testing123</td></tr></table>
</body>
</html>
Комментарии:
1. Что, если добавить alert(‘foo’); в функцию успеха? Будет ли это работать в IE?
2. В вашем коде не хватает запятой (в конце строки 4).
3. Я не вижу ничего плохого в вашем коде. Это должно работать в IE7…
Ответ №1:
Действителен ли HTML, который вы получаете из AJAX-запроса? В противном случае это приведет к сбою IE, в то время как некоторым другим браузерам все равно.
Комментарии:
1. Похоже, что так. Я разместил HTML-код файла, который я пытаюсь загрузить, в div.
2. @mike Поскольку вы извлекаете весь HTML-документ целиком, IFRAME (вместо DIV) был бы более подходящим…
Ответ №2:
Является ли ‘div’ фактическим именем идентификатора в вашем HTML? IE может быть привередливым, когда имена конфликтуют с реальными именами тегов или если идентификатор и имя HTML-элемента совпадают. Попробуйте изменить ‘div’ на что-нибудь описательное.
В любом случае это хорошая практика
Комментарии:
1. ‘div’ — это не настоящее имя. Я изменил его на что-то более уникальное в примере.
Ответ №3:
попробуйте это,
document.getElementById("div").innerHTML = data
Надеюсь, это поможет!
Ответ №4:
Я знаю, что уже поздно, пожалуйста, попробуйте это
$('#some_div').html(data.toString());
пожалуйста, прочтите эту статью, я надеюсь, это поможет