У меня возникла проблема с «Bookmarklets» при использовании IE9 x32 в Windows 7 Home Premium x64.
У меня довольно сложный букмарклет, который работает на IE9 x64, но не работает на IE9 x32. Он также отлично работал на предыдущем компьютере (XP SP3 x32) с использованием IE6 и IE7.
Я уменьшил это и закончил с этим:
javascript:(function(){var x=window.open();x.document.write('<html><head><title>Testing</title></head><body><pre>Hello !!<br></pre></body></html>');})();
«Отформатировано» для удобства чтения, это выглядит так:
javascript:
(function(){
var x=window.open();
x.document.write('<html><head><title>Testing</title></head><body><pre>Hello !!<br></pre></body></html>');
}
)();
Поместив это в закладку, я обнаружил, что он все еще работает на IE9 x64 и все еще не работает на IE9 x32.
Я ожидаю, что он должен открыть новое окно браузера (или вкладку) и отобразить текст:
Hello !!
Это происходит в IE9 x64, но в IE9 x32 открывается новое пустое окно (или вкладка), но текст не отображается.
У меня была такая же проблема на этой машине с использованием IE8, но с тех пор я обновился до IE9.
Я задал этот вопрос на другом форуме и получил несколько предложений. Реализуя эти предложения, я получаю следующее:
javascript:(function(){var x=window.open("about:blank");x.document.open();x.document.write('<!-- saved from url=(0014)about:internet -->\n<html><head><title>Testing</title></head><body><pre>Hello !!<br></pre></body></html>');x.document.close();})();
«Отформатировано» для удобства чтения, это выглядит так:
javascript:
(function(){
var x=window.open("about:blank");
x.document.open();
x.document.write('<!-- saved from url=(0014)about:internet -->\n<html><head><title>Testing</title></head><body><pre>Hello !!<br></pre></body></html>');
x.document.close();
}
)();
Опять же, эта закладка все еще работает на IE9 x64 и по-прежнему не работает (так же, как и раньше) на IE9 x32.
Я просмотрел все настройки из Сервиса -> Свойства обозревателя и все выглядит правильно.
Я также сделал сброс IE: Инструменты -> Свойства обозревателя -> Дополнительно -> Сброс. Это не имело никакого эффекта.
И я уже пытался отключить все надстройки ("C: ... \ iexplore.exe" -extoff). Опять без эффекта.
Похоже, что "x.document.write(...)"
в основном игнорируется на IE9 x32. Итак, я предполагаю, что это какой-то параметр безопасности, но, поскольку он работает в IE9 x64 ... кажется, что он должен быть настроен специально для x64 и x32, я не знаю, с чего начать.
Я попытался отладить это (x32) с помощью инструментов MS Developer. В моем первом (простейшем) примере отладчик всегда останавливается (прерывается) в операторе x.document.write (...), и я вижу сообщение об ошибке «Тег недействителен». С отладчиком, нет ошибок при использовании IE9 x64.
Во втором (последнем) примере отладчик всегда останавливается (прерывается) в операторе x.document.open, и сообщение об ошибке, которое я видел, может быть «Отказано в доступе» или «Тег недействителен».
Здесь есть «история» моей проблемы, а также несколько скриншотов:
Favlet (он же Bookmarklet) не работает в IE 8-ecac-
и здесь:
Favlet (он же Bookmarklet) не работает в IE 8-af33-
Я также попробовал эти настройки:
Tools-->Internet Options-->Security-->Local Intranet-->Enable Protected Mode:unchecked
(Tools-->Internet Options-->Security-->Internet-->Enable Protected Mode:checked)
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN:iexplore.exe=REG_DWORD 0x00000000 (0)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0:1400=REG_DWORD 0x00000000 (0)