Проблема загрузки простой, действительной страницы с помощью jquery load () в IE - «E.location.protocol является нулем или не является объектом». - PullRequest
0 голосов
/ 11 апреля 2011

Я действительно не уверен, что может быть проще.При щелчке IE отказывается загружать страницу, используя функцию load () jQuery.Это просто дает мне «E.location.protocol» - ноль или нет ошибки объекта в самом коде jQuery (1.4.4).Работает в любом другом браузере, конечно.

Я упростил add_image.php как очень простую статическую страницу, которую я проверяю как действительную на http://validator.w3.org.

У меня есть много других постов о проблемах загрузки IE, ноэто не проблема кеширования или проблема проверки.

Итак, я не могу понять, что я делаю здесь неправильно.Помимо простой попытки написать что-то простое для самого популярного в мире браузера, не ожидая, что это не будет ужасным, мучительным и разочаровывающим опытом.

$("#add-image-button").click(function(){
    $("#dialog").load('/admin_and_tools/forms/add_image.php?time=<?=time()?>');                                   
});

И идеи очень ценятся.Честно говоря, я не уверен, что делать дальше, если я не могу рассчитывать на что-то такое простое, как загрузка страницы ajax в IE.

Ответы [ 4 ]

0 голосов
/ 11 апреля 2011

Спасибо всем за вашу помощь.

Как оказалось, я совершил очень простую ошибку (удивление, удивление) и несколько месяцев пытался ее обойти, не подозревая об истинной причине.

В одном из моих сценариев я переделывал var location как глобальный, уничтожая оригинал. Это только беспокоило IE по какой-то причине, но оно действительно избавлялось от этой важной переменной.

В любом случае, спасибо JSLint за помощь в окончательном обнаружении этого, и спасибо всем за вашу помощь.


Пожалуйста, прекратите чтение здесь, чтобы избежать прослушивания еще одной анти-микрософт:

Я хотел бы добавить, что любая попытка использования любого рода отладчика в Microsoft, встроенного в IE, загружаемого отладчика сценариев или даже FirebugLite, предназначенного для помощи в отладке javascript в IE, была бесполезна - либо давать ложные номера строк, неспособность найти источник или вообще не выдавать ошибку. Не говоря уже о неуклюжем пользовательском интерфейсе отладчика I, графических ошибках, непрекращающихся перенаправлениях на собственном веб-сайте Microsoft - все, что я пробовал, было болезненным. На самом деле, если бы я получал продукт, как они делают - помоги мне бог, я бы умер от голода.

0 голосов
/ 11 апреля 2011

Попробуйте использовать относительный путь вместо абсолютного.Или попробуйте использовать полный URL с протоколом:

http://www.myurl.com

0 голосов
/ 11 апреля 2011

Обновите вашу версию jQuery.

Проверьте это с помощью этого тега сценария:

<script src="http://code.jquery.com/jquery-1.5.2.min.js" type="text/javascript"></script>
0 голосов
/ 11 апреля 2011

Ваш код jQuery в PHP сгенерирован?Если нет, я думаю, что <?=time()?> в URL не будет работать.Я не знаю, может ли это обидеть IE, но это может быть проблемой для передачи < или > в URL без их экранирования.

Если вы хотите предотвратить кэширование сценария add_image.phpвы можете использовать нативную опцию jQuery cache;

("#dialog").load('/admin_and_tools/forms/add_image.php', {
            -->  cache: false  <--
                 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...