Добрый день, столкнулся с проблемой при создании собственного URI протокола
А именно нужно, чтобы ссылки типа
explorer:// открывались как бы проводником, т.е. другими словами содержимое ссылки после
explorer:// отправлялась проводнику как контекст
Таким образом была создана запись в реестре, описывающий новый протокол, и цель данной записи было описание действие системы/браузеры при клике по данной ссылке, действие было следующим:
mshta javascript:new(ActiveXObject)('WScript.Shell').Run(decodeURIComponent(escape('%1'.substr(9)))),window.close()
Файл реестра
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Classes\explorer]
"URL Protocol"=""
@="Explorer"
[HKEY_CURRENT_USER\SOFTWARE\Classes\explorer\shell]
[HKEY_CURRENT_USER\SOFTWARE\Classes\explorer\shell\open]
[HKEY_CURRENT_USER\SOFTWARE\Classes\explorer\shell\open\command]
@="mshta javascript:new(ActiveXObject)('WScript.Shell').Run(decodeURIComponent(escape('%1'.substr(9)))),window.close()"
Проблема заключается в том, что данный скрипт успешно отрабатывает на следующих ссылках
<a href="explorer:\\\\DESKTOP-9NVI47I\\temp\\word">word</a>
<a href="explorer:\\\\DESKTOP-9NVI47I\\temp\\кириллица">кириллица</a>
<a href="explorer:\\\\DESKTOP-9NVI47I\\temp\\файл-с-(кириллицей).txt">файл-с-(кириллицей).txt</a>
но ломается на такой
<a href="explorer:\\\\DESKTOP-9NVI47I\\temp\\один пробел">один пробел</a><br>
т.е. когда появляется пробел :/
При клике по данной ссылке возникает ошибка
и если продолжить выполнение, то будет следующее окно
Вроде видно, что пробел обозначен как
%20 , т.е. про энкодено, и готово к декоду со стороны скрипта
Если же немного поправить скрипт в реестре, сделал так чтобы вывелся готовый результат после всех преобразований ссылки
mshta javascript:new(ActiveXObject)('WScript.Shell').Run(alert(decodeURIComponent(escape('%1'.substr(9))))),window.close()
То будет следующий результат
Что выглядит более чем рабочий вроде как, если его выполнить
то он успешно откроется :/ И тут я затрудняюсь понять, в чём может быть причина. Почему его не смущает кириллица, спец символы, и т.п., а об пробел он запнулся :///
Подскажите пожалуйста