通过href将参数传递给自定义协议的问题?

时间:2015-09-21 11:21:53

标签: url custom-protocol

我已经按名称创建了一个自定义协议&#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">标记传递的参数无法识别。

我不知道如何在这里转义斜杠(/)或任何特殊字符。

请帮助我,或者让我知道我做错了。

2 个答案:

答案 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;`