Проблема с Jquery, .getJSON в IE7-8 - PullRequest
       11

Проблема с Jquery, .getJSON в IE7-8

1 голос
/ 23 сентября 2011

У меня есть скрипт jquery, который создает ролловеры изображений для округов в штате.Сценарий запрашивает XML-документ о координатах и ​​информации округа х / у, а затем отображает эту информацию, когда округ над изображением штата находится над ним.Кроме того, информация о случайном округе и округе отображается до тех пор, пока один из округов не будет включен;Когда зритель покидает округ, случайное отображение возобновляется.

Сценарий отлично работает в FireFox и Chrome, но не в Internet Explorer 7–8. В IE случайное отображение работает, но около 75%из округов не будет реагировать на функциональность при наведении, по-видимому, нет никакой картины, почему они не будут реагировать (как я уже сказал, они отлично работают в других браузерах).Нужно включить / отключить, чтобы это правильно функционировало в IE?Возможно, какая-то проблема .getJSON / кеширования в IE?Любая информация с благодарностью.

Ответы [ 2 ]

2 голосов
/ 23 сентября 2011

Существует несколько известных проблем, связанных с тем, что IE рассматривает все запросы ajax как обычные веб-запросы. Так что вещи кешируются.

Вы можете попробовать ....

$.ajaxSetup({ cache: false });
$.getJSON("/MyQueryUrl",
   function(data) {
     // do stuff with callback data
     $.ajaxSetup({ cache: true });
   });

Кроме того, если вы используете ASP.NET на стороне сервера установить кешируемость

public class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext context)
    {
        context.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    }
}
0 голосов
/ 23 сентября 2011

Если это абсолютно случайно, моя внутренняя реакция заключается в том, что IE не может правильно настроить наведение, когда изображение еще не загружено.Попробуйте переместить настройку наведения в функцию обратного вызова load () после того, как вы установите ширину и высоту.

РЕДАКТИРОВАТЬ: Исходя из вашей новой информации, я рекомендую изменить верхнюю строку вашего скрипта, чтобы она заканчивалась на ".json"вместо ".js".Ваш текущий веб-хост может ( правильно ) возвратить ваш ответ JSON в виде x-javascript типа mime вместо json, что может определенно запутать IE.

...