问题标签 [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.
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
我真诚地希望有人可以帮助我
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 中的每一个。
javascript - HTTP 内容类型标头和 JSON
出于对未知的恐惧,我一直试图避免使用大多数 HTTP 协议的属性。
然而,我对自己说,我今天要面对恐惧,开始有目的地使用标题。我一直在尝试将json
数据发送到浏览器并立即使用它。例如,如果我有一个处于就绪状态 4 的 Ajax 处理函数,如下所示:
我已经在我的 PHP 代码中设置了 content-type 标头:
为什么我不能直接从处理函数访问属性,当浏览器被明确告知传入的数据是application/json
?
javascript - 使用 Javascript 检测协议处理程序
前言:我不是 Windows/软件开发人员。我只是一个具有 Javascript 技能的 Web 开发人员,所以我知道我可能不了解协议处理程序的来龙去脉。
我是一个团队的一员,该团队创建了一个安装协议处理程序的软件。一旦用户安装了软件,他们就可以通过访问类似的链接来启动它<a href="myAwesomeApp://params">Start!</a>
。
我的问题(我知道这是一个非常古老的问题)是我需要一种方法来查看是否安装了此协议处理程序。
- 如果是,请运行协议处理程序
- 如果没有,请重定向到软件安装程序位置
我在这里找到了一个适用于 FF 和 Chrome 的半有前途的解决方案(关于脚本的旧博客文章在这里)。我不确定为什么这对 IE 不起作用,即使作者明确为 IE 创建了功能。这是我目前正在使用的代码(HTML/JS):
我创建了一个示例页面用于故障排除。上缺少一个单'
引号line 72
,所以我添加了它。其他一切都没有改变。*
我的问题有两个:
- 有没有更好的方法来实现这种类型的协议处理程序检测?有没有办法修复该
launchIE()
功能使其正常工作? - 有没有办法知道在使用此检查时我应该访问哪些处理程序?例如,在我当前的代码中,“acrobat”在 Chrome 中显示为 True。在 IE10 中,它显示为 false。我对什么应该是真/假有一个大致的了解,但我不确定。
我正在尝试在 Javascript 中执行此操作,因为该项目的要求是从浏览器启动程序(然后返回结果)。如果这在 Javascript 中是不可能的,我愿意听取任何其他解决方案。
apache - Apache 代理:没有有效的协议处理程序
我正在尝试将子目录代理到另一台服务器。我的 httpd.conf:
问题是 Apache 总是记录这个:
所以在搜索了互联网之后,我已经激活了这些模块:
(我知道我不需要所有这些,但我只是激活它们以确保我没有错过任何一个)
但是这个错误仍然出现并且客户端得到一个 HTTP 500。
我怎样才能解决这个问题?
html - 具有多个参数的协议处理程序
我创建了一个应用程序来充当协议处理程序,注册表是根据http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx设置的
然后在网页中我有类似的东西:
如果我单击该链接,则会启动该应用程序并将“testapp:arg1”作为参数传入。
现在我想将多个参数传递给处理程序。我猜在“命令”注册表项中,我会有"path_to_exe" "%1" "%2"
. 但是我不知道如何编写 html 链接来提供多个参数。
是否可以传递多个参数?如果是这样,我该怎么做,不同浏览器之间是否存在差异?
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(最新)
c# - 如何在 Windows 8 上正确注册协议处理程序?
我有一个小项目来处理tel:
协议链接。这是一个桌面应用程序,我正在使用 Visual Studio 2013 社区版进行开发。
以前,我使用简单的注册表修改来注册处理程序:
但是,这似乎不再适用于 Windows 8。虽然注册表项具有所需的值,但链接仍由不同的应用程序处理。我的工具甚至没有出现在协议处理程序选择中:
我查看了演练:使用 Windows 8 自定义协议激活,但我无法将上述信息与我的应用程序相关联。文章提到了一个.appxmanifest
文件,我的项目中没有该文件,因此无法添加为新项目。
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>
javascript - 是否可以从 chrome 外部协议请求中获取点击事件?
是否有机会跟踪此 div/弹出窗口上的点击事件?就像用户点击“启动应用程序”按钮或“什么都不做”按钮一样?
另外,是否有可能首先知道 div 是否真的出现了?(我知道我们可以跟踪模糊事件,但它不准确)