$ jQuery (документ) .ready () переставший работать в IE6

В Xamarin.Forms у нас есть свойства, называемые Application.Current.Properties. Используя это, мы можем сохранить любой тип данных. Поэтому, когда пользователь входит в приложение, вы можете установить один флаг и установить его в значение true. Затем каждый раз, когда пользователь входит в приложение, вы можете установить этот флажок и перейти на соответствующую страницу.

Пример кода:

App.cs:

public App()
{
 if (Current.Properties.ContainsKey("isLogged"))
 {
    if((bool)Application.Current.Properties["isLogged"])
    {
       // navigate to your required page.
    }
    else
    {
      // naviate to login page.
    }
 }
 else
 {
   // naviate to login page.
 }
}

При первом открытии приложения оно проверяет, присутствует свойство isLogged или нет, если нет, оно перейдет в логин стр. Когда пользователь входит в приложение, используя его учетные данные, нам нужно создать свойство isLoggin и установить значение true. Затем, если пользователь пытается войти в систему, он проверяет условие и переходит на соответствующую страницу.

Сохранение свойства SampleCode:

Application.Current.Properties["isLogged"] = true;

await Application.Current.SavePropertiesAsync();

напишите код выше после входа в приложение. Если пользователь выходит из приложения, вам нужно установить флаг isLogged - false.

10
задан FlySwat 21 January 2009 в 01:28
поделиться

9 ответов

Вы уверены, что jQuery загружается? Попытайтесь отладить с предупреждениями как:

alert(typeof $);

Вы могли также попробовать другой синтаксис:

$(function() {
     clearInterval(timer); 
});

Хорошо, таким образом, из Вашего комментария, вышеупомянутое не помогает. "Объект ожидал, что" ошибка, кажется, происходит с синтаксической ошибкой, по моему опыту. Это - точный код, который Вы имеете? В противном случае Вы могли отправить его?

1
ответ дан 3 December 2019 в 16:11
поделиться

Я не думаю, что необходимо действительно опрашивать относительно элементов путем, Вы.

Готовое событие документа звонит, как только браузер загрузился достаточно, чтобы Вы смогли управлять страницей, таким образом, необходимо просто выполнить обработке DOM $(document).ready() блок.

0
ответ дан 3 December 2019 в 16:11
поделиться

Я столкнулся с этой проблемой на своей машине, так как смог быстро найти решение. Вот что я сделал:

1. Отладил мой javascript с предложением nickf «alert (typeof $)» и получил предупреждающее сообщение «undefined»

2. Затем я полностью определил ресурсы моего скрипта jQuery.

3. Перезагрузите мою страницу и получили предупреждение «function»

Кстати, я использую IIS 5.1 на XP. Мой веб-сайт настроен на использование «сопоставления с подстановочными знаками» для получения информации об инфраструктуре asp.net mvc Я думаю, что эта конфигурация вызвала неработающие ссылки.

Для получения дополнительной информации о том, как настроить MVC на старых версиях IIS, посмотрите пост Фила Хаака: http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

0
ответ дан 3 December 2019 в 16:11
поделиться

Вы могли попробовать старый skool способ проверить, "готов" ли документ... Поместите сценарий непосредственно перед закрытием </тело> тег - я полагаю, что это имеет тот же эффект как 'готовое' событие jQuery - на самом деле, это - вероятно, более быстрое выполнение его этот путь.


По моему опыту, "Object ожидал, что" ошибка в IE6 обнаруживается из-за синтаксической ошибки - стоит поместить сценарий, хотя JSlint, если Вы уже не имеете...

0
ответ дан 3 December 2019 в 16:11
поделиться

У меня было такое же вопрос тоже в прошлом. Это была спорадическая проблема, и ее было ужасно воспроизводить.

Решение, которое я нашел, состояло в замене $ (document) .ready (function () {...}); на jQuery (function () {...}) , и это сработало как шарм!

Перемещение $ (document) .ready (function () {...}); в bottom не работает для моего варианта использования.

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

5
ответ дан 3 December 2019 в 16:11
поделиться

$ (document) .ready () сообщает вам, когда доменное имя готово, но не все ресурсы обязательно готовы.

Если вы хотите убедиться, что все ресурсы действительно есть загрузка завершилась, используйте вместо нее $ (window) .load () . Чаще всего это используется, чтобы убедиться, что изображения загружены, но это также может сработать и для вашей проблемы со скриптом.

0
ответ дан 3 December 2019 в 16:11
поделиться

Если он находится в элементе сценария, который находится в вашем элементе body, (т. Е.) ..

Причиной могут быть атрибуты, которые вы передаете с скрипт-тег. Если это так:

<script type="text/javascript">...</script>

IE6 может выдать ошибку. Вы должны использовать

<script language="javascript">...</script> 

, тогда ошибка исчезнет.

0
ответ дан 3 December 2019 в 16:11
поделиться

Просто несколько указателей для тех, кто интересуется:

$(document).ready(function() {...}); и $(function() {...}); означают совершенно одно и то же. Последнее является сокращением для первого.

Если вы разрабатываете для большого сайта, используя несколько библиотек Javascript, или разрабатываете плагины, предназначенные для совместимости с чужими работами, вы не можете доверять знаку доллара ($), связанному с объектом jQuery. На всякий случай используйте следующую нотацию:

(function($) { [your code here] })(jQuery);

Это передает jQuery в самоисполняющуюся функцию и связывает $ с объектом jQuery внутри этой функции. Тогда не имеет значения, что представляет $ вне вашей функции.

Чтобы вернуться к вашему вопросу, проверьте, назначена ли переменная таймера, когда вы получаете ошибку? Я полагаю, что браузер увидит $(document).ready(function() {...}); как одну строку, так что если у вас есть какой-то отладчик, который говорит вам, что именно эта строка выдает ошибку, это может быть переменная таймера...

И последнее: в Javascript неправильно размещать открытые фигурные скобки на новой строке. Это может привести к очень плохим ошибкам из-за вставки точки с запятой в Javascript. Более подробную информацию можно найти в книге Дугласа Крокфорда "Javascript: The good parts:

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_1?ie=UTF8&s=books&qid=1267108736&sr=1-1

В любом случае, надеюсь, я никого не расстроил. Надеюсь, вы решите проблему!

EDIT: Я не уверен, что robertz имел в виду именно это, но, насколько я знаю, когда URL полностью квалифицирован, это означает, что никакие части не отсутствуют, т.е. это абсолютный URL, начинающийся с http:// или https:// (или какого-то другого протокола). Пожалуйста, поправьте меня, если я ошибаюсь!

15
ответ дан 3 December 2019 в 16:11
поделиться

Если у кого-то есть такая же проблема, вы должны увидеть, если при вызове своих javascript-сценариев у вас есть type = "application / javascript" , я устраняю это, и это было исправлено, я думаю, что это какая-то проблема с IE и типом Thing

3
ответ дан 3 December 2019 в 16:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: