Пользовательский протокол браузера для открытия IE с параметрами - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно реализовать что-то похожее на этот ответ https://stackoverflow.com/a/41749105/1004374, но у меня есть несколько проблем.Я немного его изменил, чтобы можно было передавать аргументы в URL:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>openie</title>
</head>
<body>
  <h1>Hello world!</h1>
  <a href="openie:https://www.google.com/">Google1</a>
  <a href="openie:https://www.google.com/?word=abc&word2=abc2">Google2</a>
</body>
</html>

и изменять скрипт reg:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\openie]
"URL Protocol"="\"\""
@="\"URL:OPENIE Protocol\""

[HKEY_CURRENT_USER\Software\Classes\openie\DefaultIcon]
@="\"explorer.exe,1\""

[HKEY_CURRENT_USER\Software\Classes\openie\shell]

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

[HKEY_CURRENT_USER\Software\Classes\openie\shell\open\command]
@="cmd /k set myvar= & call set myvar=\"%1\" & call set myvar=%%myvar:openie:=%% & call \"C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe\" %%myvar%% & exit /B"

Единственное обновление - экранирование аргумента% 1:

myvar=\"%1\

Это необходимо для передачи аргументов с &.В противном случае будет скопирован URL до первого амперсанда:

openie:https://www.google.com/?word=abc&word2=abc2

Все в порядке, когда вы нажимаете на ссылку в первый раз.Когда IE уже открыт, URL-адрес неправильно копируется с закодированными кавычками внутри него и автоматически добавляется http в начале:

http://%22https//www.google.com/?word=abc&word2=abc2"

Я понимаю, что проблема со скриптом cmd внутри, но не могу угадать, что нужно изменить, чтобы иметь возможностьпередавайте аргументы и нажимайте ссылки много раз.

1 Ответ

0 голосов
/ 30 апреля 2019

Не найден хороший способ изменить скрипт, чтобы он принимал '&'.но в качестве обходного пути, я предлагаю вам закодировать URL-адрес и изменить '&' на '% 26', как показано ниже:

<a href="openie:https://www.google.com/?word=abc%26word2=abc2">Google2</a>

Затем на странице назначения вы можете декодироватьURL-адрес и измените «% 26» на «&», затем разделите строку и получите параметры.

Более подробную информацию см. в HTML-кодировке URL .

...