我已经按名称创建了一个自定义协议&#34; myapp&#34;并试图通过href标签将参数传递给它<a href="myapp://E:/file.txt">Click here</a>
。
myapp协议如下所述:
[HKEY_CLASSES_ROOT\myapp]
@="\"URL:Alert Protocol\""
"URL Protocol"="\"\""
[HKEY_CLASSES_ROOT\myapp\DefaultIcon]
@="\"C:\\WINDOWS\\System32\\notepad.exe,1\""
[HKEY_CLASSES_ROOT\myapp\shell]
[HKEY_CLASSES_ROOT\myapp\shell\open]
[HKEY_CLASSES_ROOT\myapp\shell\open\command]
@="\"C:\\WINDOWS\\System32\\notepad.exe\" \"%1\""
单击锚链接时会抛出错误,因为文件名,目录名或卷标语法不正确。&#34;
我想通过<a href="myapp:E:/file.txt">
标记传递的参数无法识别。
我不知道如何在这里转义斜杠(/)或任何特殊字符。
请帮助我,或者让我知道我做错了。
答案 0 :(得分:1)
问题是您的命令行已成为
C:\ WINDOWS \ system32 \ notepad.exe myapp:E:/file.txt
我确定你期待它
C:\ WINDOWS \ system32 \ notepad.exe E:/file.txt
答案 1 :(得分:0)
你必须做这样的事情来获得参数。在这里,我将URL地址作为我们在myapp中传递的参数:
var url = document.location.href ;
var arr = url.split("/");
var result = arr[0] + "//" + arr[2]
var uri='myapp://'+result;`