相关疑难解决方法(0)

如何检查是否支持自定义协议

我们正在使用注册自己协议的软件.我们可以从浏览器运行应用程序然后通过以下链接

customprotocol://do_this.
Run Code Online (Sandbox Code Playgroud)

但有没有办法检查用户系统支持的自定义协议?如果不是,我们首先要求用户安装软件.

例如:

if (canHandle ('customprotocol')) {
     // run software
}
else {
    // ask to install
}
Run Code Online (Sandbox Code Playgroud)

编辑 我知道protocolLong属性,但它只适用于IE.

javascript

56
推荐指数
4
解决办法
3万
查看次数

如何从Javascript启动两个或多个自定义URL协议

我有一个旧的html页面,它创建一个脚本文件并使用以下命令执行它:

fsoObject = new ActiveXObject("Scripting.FileSystemObject")
wshObject = new ActiveXObject("WScript.Shell")
Run Code Online (Sandbox Code Playgroud)

我正在尝试修改它并使其也可以从其他浏览器使用.如果你知道答案停止阅读,请回答.如果没有快速回答,这里是我的尝试的描述.我成功地完成了这项工作,但只有当脚本短于2000个字符时才会这样做.我需要帮助超过2000个字符的脚本.

该网页仅供内部使用,因此我很容易在从网络驱动器运行VBScript文件的每台计算机上创建自定义URL协议.

我创建了自定义URL协议,启动VBScript文件,如下所示:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\MyUrlProtocol]
"URL Protocol"=""
@="Url:MyUrlProtocol"
"UseOriginalUrlEncoding"=dword:00000001

[HKEY_CLASSES_ROOT\MyUrlProtocol\DefaultIcon]
@="C:\\Windows\\System32\\WScript.exe"

[HKEY_CLASSES_ROOT\MyUrlProtocol\shell]

[HKEY_CLASSES_ROOT\MyUrlProtocol\shell\open]

[HKEY_CLASSES_ROOT\MyUrlProtocol\shell\open\command]
@="C:\\Windows\\System32\\WScript.exe \"X:\\MyUrlProtocol.vbs\" \"%1\""
Run Code Online (Sandbox Code Playgroud)

MyUrlProtocol.vbs我有这样的:

MsgBox "The length of the link is " & Len(WScript.Arguments(0)) & " characters"
MsgBox "The content of the link is: " & WScript.Arguments(0)
Run Code Online (Sandbox Code Playgroud)

当我点击时,<a href="MyUrlProtocol:test" id="test">click me</a>我看到两条消息,所以一切正常(在Windows 7中使用Chrome和IE测试)

它也适用于我执行时 document.getElementById("test").click()

我认为这可能是解决方案:我会将脚本文本传递给VBS静态脚本,这将创建动态脚本并运行它,但是使用这个系统我不能传递超过2000个字符.

因此,我尝试将脚本文本拆分为小于2000个字符的块,并模拟链接上的几次单击,但只有第一个工作.

所以我尝试过xmlhttp.open("GET","MyUrlProtocol:test",false);,但Chrome说Cross origin requests are only supported for HTTP …

html javascript onclick url-protocol

10
推荐指数
1
解决办法
2575
查看次数

标签 统计

javascript ×2

html ×1

onclick ×1

url-protocol ×1