Попытка открыть ссылку в окне IE из браузера Chrome - PullRequest
0 голосов
/ 02 ноября 2018

Я видел этот вопрос здесь Можно ли принудительно открыть ссылку в определенном браузере?

Я нашел одно решение, которое работает например.

window.open("microsoft-edge:https://www.google.com");

Это работает для Edge, но я ищу подобное решение для открытия в Internet Explorer.

Пытались
ie, iexplore, internet-explorer

Также я не могу зависеть от пользователей, устанавливающих расширение «открыть в» в своем браузере.

Я мог бы пойти по пути редактирования реестра, поскольку webapp будет работать в корпоративных системах, но просто хотел проверить здесь, прежде чем идти по этому маршруту.

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Простейшим решением было бы добавить схему URI для IE, а ссылки в формате ie:http://example.com запустят IE и посетят http://example.com.

Чтобы добавить схему URI для IE, добавьте этот реестр :

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\ie]
"URL Protocol"=""
@="URL:IE Protocol"

[HKEY_CURRENT_USER\Software\Classes\ie\shell]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open]

[HKEY_CURRENT_USER\Software\Classes\ie\shell\open\command]
@="cmd /c set url=\"%1\" & call set url=%%url:ie:=%% & call start iexplore -nosessionmerging -noframemerging %%url%%"

Некоторые важные заметки:

  1. Вы должны заключить %1 в двойные кавычки. В противном случае URL с несколькими параметрами, такими как example.com?a=1&b=2, будет обрезан до example.com?a=1, параметры после & будут игнорироваться.
  2. Вы должны удалить двойные кавычки при вызове iexplore. Если вы не удалите двойные кавычки и не откроете несколько окон IE из Chrome, только первое окно IE получит правильный URL. Но удаление кавычек с помощью команды set url=%%url:\"=%% или set url=%%url:~1,-1%% не работает.
  3. Если вы просто не можете удалить эти кавычки, добавьте переключатели -nosessionmerging и -noframemerging к iexplore. Это параметры командной строки для управления поведение слияния для IE.
0 голосов
/ 02 ноября 2018

Похоже, IE не регистрирует себя в качестве схемы URI.

Чтобы приложение (в данном случае браузер) могло прослушивать URI-схему, оно должно быть зарегистрировано в Реестре (по крайней мере, для Windows). Я просто запустил небольшой скрипт со списком всех зарегистрированных схем URI и, в отличие от Edge, не вижу ничего, что представляет Internet Explorer. (Он у меня установлен).

Конечно, лучшим способом было бы полностью отказаться от Internet Explorer, поскольку он устарел. Но если вы придерживаетесь этого, редактирование реестра самостоятельно кажется единственным вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...