Как можно реализовать опцию jQuery, не имея пользователей подсказки IE с Активным X предупреждений?

По существу я хочу реализовать опцию jQuery на сайте, который я создаю, но я не хочу, чтобы пользователи Internet Explorer должны были нажать "Allow Blocked Content". Функция хорошо работает с Safari, Chrome и Firefox. Это - только IE, который предлагает пользователям с Активным X предупреждений.

Я использую следующий плагин цикла jQuery: http://malsup.com/jquery/cycle/

Я думал, что мне, возможно, просто придется жить с тем, что пользователи должны нажать на Активное X сообщений, когда они используют сайт, но Zendesk (www.zendesk.com) использует ту же реализацию, и тот сайт не предлагает мне с предупреждением.

Любые идеи относительно того, что я делаю неправильно, ценились бы.

7
задан casperOne 17 February 2010 в 18:02
поделиться

4 ответа

Вероятно, вы запускаете страницу локально. IE не любит, когда на локальных страницах запускается javascript, и всегда будет жаловаться на это. Если у вас есть его как веб-сайт (даже на localhost), он больше не должен жаловаться.

14
ответ дан 6 December 2019 в 10:00
поделиться

Это потому, что вы работаете локально / из файла? Попробуйте на удаленном сервере. Проблема сохраняется? Чтобы избавиться от него локально, попробуйте добавить отметку « в Интернете »

4
ответ дан 6 December 2019 в 10:00
поделиться

Я думаю, что вы можете решить это за линейное время. Во-первых, замените все 0 на очень маленькое число (например, -2 ^ 30), чтобы это не повлияло на нашу сумму.

Тогда:

let s[i] = sum of first i integers
let k = number of integers required
let max = -inf    
for ( int i = k; i <= N; ++i )
  if ( s[i] - s[i - k - 1] > max )
     max = s[i] - s[i - k - 1]

Вероятно, можно избежать замены нулей несколькими дополнительными условиями. если s [i] = сумма первых i целых чисел, то s [i] - s [k- 1] дает сумму целых чисел с k по i.

Edit : Вы можете сделать это в O (1) дополнительное пространство, как это: сначала заменить все 0.

тогда:

max = cr = sum of first k integers.
for ( int i = k + 1; i <= N; ++i )
{
  cr = cr + numbers[i] - numbers[i - k] 
  if ( cr > max )
    max = cr; // also update positions
}

Чтобы избежать замены нулей в первом решении, просто пропустите k мест вперед при достижении нуля. Во втором решении пропустите k или k + 1 (зависит от того, как вы выберете реализацию этого специального случая) места впереди, но обязательно восстановите переменную cr при выполнении пропуска!

-121--3950507-

Выполняется локально или из файла? Попробуйте использовать удаленный сервер. Проблема сохраняется? Чтобы избавиться от него локально, попробуйте добавить знак « в Интернете »

-121--3832421-

Некоторые эффекты в IE реализуются через плагин ActiveX (fade и т.д.). Если браузер настроен на постоянное предупреждение о ActiveX во всех случаях, вы не можете остановить эти сообщения. Тем не менее, есть параметры настройки, которые не показывают эти предупреждения, например, списки надежных сайтов.

0
ответ дан 6 December 2019 в 10:00
поделиться

У меня была эта проблема на живом сервере. Искал в Интернете ответы и все время находил информацию, в которой говорилось, что это потому, что вы тестируете на локальном сервере или вам нужно применить MOTW. Нет. Оказывается, есть исправление ошибки, которое нужно применить к самому скрипту jquery, чтобы избавиться от него.

http://dev.jquery.com/changeset/6268

У меня работало. Также убедитесь, что это не минифицированная версия скрипта.

1
ответ дан 6 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

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