问题标签 [protocol-handler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3677 浏览

java - 在 Window 上运行的 Firefox、Chrome 和 IE 上编写可移植的自定义协议处理程序

我正在编写一个协议处理程序来启动一个 java 应用程序,调用一个类似 java -jar myApp '%1' 的命令。目前我已经为 Chrome 实现了它,它看起来工作正常。不幸的是,我对 Firefox 和 IE 没有相同的行为(奇怪啊?!XD)

这是我的实现。

该协议名为 dgh。在第一次安装期间,我的应用程序在 Windows 注册表中设置了以下键

在铬上这就足够了。在 Firefox 上,我必须在about:config中添加一些配置。在 Firefox 上遵循 MDN 我设置以下

这样,firefox 至少会问我是否要启动应用程序并要求我选择一个:我不想要那个,我会调用我设置的命令并在第一次通知用户时告诉用户:

在 IE 上没有任何反应,它说无法通过我的链接打开网页引用。

这是我用作测试的一组链接

这里有一些参考: 安装和注册协议处理程序 http://msdn.microsoft.com/en-us/library/aa767916%28VS.85%29.aspx

我真诚地希望有人可以帮助我

0 投票
0 回答
270 浏览

python - 在 PyInstaller 打包的 Python 应用程序中处理文件和 URL 的打开

假设我开发了一个应用程序Awesome并将其部署到使用 PyInstaller 制作的人工制品的用户机器上。我们现在只考虑 Mac OS X 的人工制品,Awesome.app.

在安装过程中,Awesome.app被注册为打开文件类型*.awesome和处理 URL 的形式awesome://*(即处理自定义协议awesome)。

用户运行Awesome.app. 为了争论,假设它有 process id 1234。然后,用户打开一个文件foo.awesome

如何确保这个打开的事件由已经运行的Awesome进程 1234 处理?在 Python 应用程序中实际发生这种情况的代码路径是什么?

如果答案是特定于平台的,我仍然希望了解 Windows、Mac OS X 和 Ubuntu 中的每一个。

0 投票
5 回答
937687 浏览

javascript - HTTP 内容类型标头和 JSON

出于对未知的恐惧,我一直试图避免使用大多数 HTTP 协议的属性。

然而,我对自己说,我今天要面对恐惧,开始有目的地使用标题。我一直在尝试将json数据发送到浏览器并立即使用它。例如,如果我有一个处于就绪状态 4 的 Ajax 处理函数,如下所示:

我已经在我的 PHP 代码中设置了 content-type 标头:

为什么我不能直接从处理函数访问属性,当浏览器被明确告知传入的数据是application/json

0 投票
0 回答
430 浏览

javascript - 使用 Javascript 检测协议处理程序

前言:我不是 Windows/软件开发人员。我只是一个具有 Javascript 技能的 Web 开发人员,所以我知道我可能不了解协议处理程序的来龙去脉。

我是一个团队的一员,该团队创建了一个安装协议处理程序的软件。一旦用户安装了软件,他们就可以通过访问类似的链接来启动它<a href="myAwesomeApp://params">Start!</a>

我的问题(我知道这是一个非常古老的问题)是我需要一种方法来查看是否安装了此协议处理程序。

  • 如果是,请运行协议处理程序
  • 如果没有,请重定向到软件安装程序位置

我在这里找到了一个适用于 FF 和 Chrome 的半有前途的解决方案(关于脚本的旧博客文章在这里。我不确定为什么这对 IE 不起作用,即使作者明确为 IE 创建了功能。这是我目前正在使用的代码(HTML/JS):

我创建了一个示例页面用于故障排除。上缺少一个单'引号line 72,所以我添加了它。其他一切都没有改变。*

我的问题有两个:

  1. 有没有更好的方法来实现这种类型的协议处理程序检测?有没有办法修复该launchIE()功能使其正常工作?
  2. 有没有办法知道在使用此检查时我应该访问哪些处理程序?例如,在我当前的代码中,“acrobat”在 Chrome 中显示为 True。在 IE10 中,它显示为 false。我对什么应该是真/假有一个大致的了解,但我不确定。

我正在尝试在 Javascript 中执行此操作,因为该项目的要求是从浏览器启动程序(然后返回结果)。如果这在 Javascript 中是不可能的,我愿意听取任何其他解决方案。

0 投票
9 回答
263016 浏览

apache - Apache 代理:没有有效的协议处理程序

我正在尝试将子目录代理到另一台服务器。我的 httpd.conf:

问题是 Apache 总是记录这个:

所以在搜索了互联网之后,我已经激活了这些模块:

(我知道我不需要所有这些,但我只是激活它们以确保我没有错过任何一个)

但是这个错误仍然出现并且客户端得到一个 HTTP 500。

我怎样才能解决这个问题?

0 投票
1 回答
4135 浏览

html - 具有多个参数的协议处理程序

我创建了一个应用程序来充当协议处理程序,注册表是根据http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx设置的

然后在网页中我有类似的东西:

如果我单击该链接,则会启动该应用程序并将“testapp:arg1”作为参数传入。

现在我想将多个参数传递给处理程序。我猜在“命令”注册表项中,我会有"path_to_exe" "%1" "%2". 但是我不知道如何编写 html 链接来提供多个参数。

是否可以传递多个参数?如果是这样,我该怎么做,不同浏览器之间是否存在差异?

0 投票
6 回答
21962 浏览

javascript - 最简单的跨浏览器检查协议处理程序是否已注册

当用户单击带有自定义协议的链接时(例如myapp://superlink

我需要启动应用程序或允许用户下载并运行配置应用程序

我正在寻找跨浏览器的方法来检查自定义协议是否已注册

我试图通过检查用户代理服务器端(对于 IE)来确定这一点

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform] "myapp"=""

发送

作为用户代理

这是好的,干净的方式,易于配置:

只需下载 .reg 文件并运行它或通过 ms windows 策略传播

我无法为 Chrome 和 Firefox 解决此问题

是否有任何客户端解决方案(在 js 中)?

我的环境:IE8+、Chrome(最新)、Firefox(最新)

0 投票
1 回答
4441 浏览

c# - 如何在 Windows 8 上正确注册协议处理程序?

我有一个小项目来处理tel:协议链接。这是一个桌面应用程序,我正在使用 Visual Studio 2013 社区版进行开发。

以前,我使用简单的注册表修改来注册处理程序:

但是,这似乎不再适用于 Windows 8。虽然注册表项具有所需的值,但链接仍由不同的应用程序处理。我的工具甚至没有出现在协议处理程序选择中:

在此处输入图像描述

我查看了演练:使用 Windows 8 自定义协议激活,但我无法将上述信息与我的应用程序相关联。文章提到了一个.appxmanifest文件,我的项目中没有该文件,因此无法添加为新项目。

0 投票
1 回答
92 浏览

cross-browser - 浏览器高亮支持我自己的协议处理程序

我正在使用一个类来注册我的协议,比如说lorem:操作系统。它工作完美,但我想做几件事。

我想创建类似Skype Click to Call的东西。人们会分享 uri 的点赞lorem://12345678,当其他人点击它时,事件处理程序会将该请求重定向到我的 Windows 应用程序。我想让这个 uri 可点击。如何向浏览器识别这种新方案,以便当页面包含 时lorem://12345678,浏览器会对其进行转换,
<a href="lorem://12345678">lorem://12345678</a>并且用户可以单击它。

我可以通过浏览器配置来做到这一点,还是应该编写某种扩展来实现这个规则。它必须支持所有浏览器,这是否意味着我需要为 Chrome、Firefox 和 IE 编写相同的扩展程序?以及如何使用我的软件设置安装所有扩展?

直截了当的问题:我想在最流行的浏览器上转换lorem://ipsum文本<a href="lorem://ipsum">My URL!</a>

0 投票
0 回答
344 浏览

javascript - 是否可以从 chrome 外部协议请求中获取点击事件?

在此处输入图像描述

是否有机会跟踪此 div/弹出窗口上的点击事件?就像用户点击“启动应用程序”按钮或“什么都不做”按钮一样?

另外,是否有可能首先知道 div 是否真的出现了?(我知道我们可以跟踪模糊事件,但它不准确)