Мне нужно отобразить страницу MediaWiki, которую наша компания размещает во встроенном элементе управления Internet Explorer приложения.
Я пытаюсь запустить собственный скрипт внутри файла javascript скина моей MediaWiki для динамической настройки макета, но я обнаружил, что скрипт отлично работает внутри каждого браузера вместо встроенного IE. Я попытался поставить предупреждение в начале скрипта, он появился в Chrome, FF, Internet Explorer, но не во встроенном элементе управления IE.
Приложение написано на Delphi, в котором я не являюсь экспертом, поэтому я создал небольшое приложение WPF с компонентом WebBrowser, и результаты те же: скрипт не запущен.
Я также попытался поместить свою логику в страницу MediaWiki: Common.js, но она тоже не работает.
Любая помощь или указание мне в правильном направлении будет принята с благодарностью. Спасибо
Оказалось, что IE имеет отдельные настройки безопасности для встроенных браузеров, это препятствовало запуску скрипта. Решение состояло в том, чтобы разрешить запуск сценариев или добавить сайт, который я хотел отобразить, на доверенные сайты.
Это, очевидно, не очень хорошее решение, поскольку я не могу ожидать, что все клиенты изменят свои настройки безопасности, поэтому в приложении Delphi движок IE был изменен на Chrome.
Некоторые функции JavaScript в MediaWiki отключены для Internet Explorer (иногда любой версии, часто до IE8). В MediaWiki 1.24 JavaScript полностью отключен для IE7 или ниже. https://www.mediawiki.org/wiki/MediaWiki_1.24#Browser_support_deprecated_or_removed
Итак, о какой версии Internet Explorer вы говорите? Это может быть не вашей проблемой, но тот факт, что вы не упомянули версию, заставляет меня думать, что вы, вероятно, пренебрегли проверкой ее уровня поддержки.
Я столкнулся с этой проблемой в приложении Delphi. Оказывается, что встроенный элемент управления по умолчанию работает в режиме совместимости с IE7. Вы можете поместить записи в реестр, чтобы убедить IE в обратном.
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
Я добавил новое значение DWORD с именем, установленным для моего приложения (например, myapp.exe), и присвоил ему значение 0x2fa9.