Вопрос

Существует ли какой-либо метод программного определения текущих настроек зоны безопасности для Internet Explorer?

Я хотел бы знать, когда на моем сайте будет заблокирован элемент управления ActiveX XMLHttpRequest из-за политики безопасности IE, но до того, как сайт фактически попытается его создать и, таким образом, вверху появится желтая полоса (с надписью: «Чтобы защитить вашу безопасность , Internet Explorer запретил этой веб-странице запуск сценариев или элементов управления ActiveX, которые могут получить доступ к вашему компьютеру.")

Спасибо.

Это было полезно?

Решение

Примечание:Я не могу удалить принятый ответ, но вы можете найти этот ответ полезен.

Оригинальный ответ:

В JavaScript нет дескриптора для определения зоны безопасности, используемой IE.

Чтобы сделать то, что вам нужно, вы можете проверить document.location и определить на его основе зону безопасности.

Другие советы

В IE7 вы можете использовать следующий код JavaScript, чтобы получить представление о том, заслуживает ли ваш сайт доверия:

window.status = "test";
if (window.status == "test")
  alert("Trusted, or local intranet");
else
  alert("Not trusted, or internet");

Это основано на том факте, что в IE7 и более поздних версиях сценарии больше не могут устанавливать текст строки состояния с помощью метода window.status в Интернете и зонах ограниченного доступа.См. Примечания к выпуску Internet Explorer 7

Зона безопасности не имеет значения, поскольку пользователи Windows могут сами определять, какие протоколы какой зоной обрабатываются.Например, я добавил всю зону http и всю зону https в зону доверенных сайтов (зона 2).Это делается через ключ

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet     Settings\ZoneMap\ProtocolDefaults

Вы можете проверить наличие document.protocol через JavaScript, но чем это вам поможет?

if (document.protocol == "HTTP (HyperText Transfer-Protokoll)")

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

Можно выполнять объекты ActiveX без этой дурацкой желтой полосы, но вам нужно добавить направляющие объектов com в список безопасных объектов com.Это делается через реестр.Значение по умолчанию небезопасно для большинства объектов, за исключением некоторых глупых и бесполезных дерьмовых объектов, таких как flash activex, wmp activex и тому подобное.

Я хотел бы знать, когда на моем сайте будет заблокирован элемент управления ActiveX XMLHttpRequest из-за политики безопасности IE.

Вы не можете этого сделать, даже если бы знали, в какой зоне вы находитесь, поскольку вы не можете прочитать настройки каждой зоны, а начиная с IE6SP2 существует больше настроек, влияющих на ActiveX, которые невозможно настроить для каждой зоны.(IE7 имеет еще больше настроек, специфичных для управления.)

Я не знаю способа спекулятивно создать XMLHttpRequest и избежать желтой полосы, за исключением использования только собственного объекта «новый XMLHttpRequest()», который делает вас несовместимым с IE6.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top