我需要实现类似于此答案的内容 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>
并更改了注册脚本:
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脚本内部存在问题,但无法猜测应该进行哪些更改才能传递参数并多次单击链接。
答案 0 :(得分:0)
找不到修改脚本以接受'&'的好方法。但是,作为一种解决方法,我建议您可以对网址进行编码,然后将“&”更改为“%26”,如下所示:
<a href="openie:https://www.google.com/?word=abc%26word2=abc2">Google2</a>
然后,您可以在目标页面中解码URL,并将'%26'更改为'&',然后拆分字符串并获取参数。
更多详细信息,请参阅HTML URL Encoding。