问题标签 [url-protocol]
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.
windows - Windows 8.1 / IE11 自定义 URL 协议打开到 --> about:blank
Windows 8.1 / IE 11 自定义 url 协议搞砸了。启动时,应用程序被执行,然后浏览器中的 url 重定向到about:blank
甚至 Skype 的协议也能做到:
我尝试了一些方法,例如使用 iframe、document.location.href = u; 结果很差。
当链接位于 iframe 内时,这似乎有效,否则会失败:
任何人都知道如何在浏览器不重定向到about:blank的情况下启动协议的应用程序?
我现在将 IE11 视为完全不同的浏览器:chrome、FF、safari、IE7-10 和 IE11
javascript - 如何从 Javascript 启动两个或多个自定义 URL 协议
我有一个旧的 html 页面,它创建一个脚本文件并使用以下命令执行它:
我正在尝试修改它并使其也可以在其他浏览器中使用。如果您知道答案,请停止阅读,请回答。如果没有快速回答,这里是我尝试的描述。我成功地完成了这项工作,但前提是脚本少于 2000 个字符。对于超过 2000 个字符的脚本,我需要帮助。
该网页仅供内部使用,因此我很容易在每台运行网络驱动器中的 VBScript 文件的计算机上创建自定义 URL 协议。
我创建了启动 VBScript 文件的自定义 URL 协议,如下所示:
在MyUrlProtocol.vbs
我有这个:
当我单击时,<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
。
是否可以通过自定义 URL 协议将超过 2000 个字符传递给 VBScript 脚本?
如果不是,是否可以依次调用多个自定义 URL 协议?
如果没有,是否有另一种方法来创建脚本文件并从 Javascript 运行它?
编辑 1
我找到了一个解决方案,但在 Chrome 中只有在它喜欢的时候才有效,所以我回到了原点。
IE 中的以下代码执行脚本 4 次(正确),但在 Chrome 中仅运行第一次执行。
如果我将其更改为delay += 2000
,那么 Chrome 通常会运行脚本 2 次,但有时会运行 1 次,有时会运行 3 次甚至 4 次。
如果我将其更改为delay += 10000
,那么它通常会运行脚本 4 次,但有时会错过一次。
该函数在 Chrome 和 IE 中总是执行 4 次。奇怪的是,sr.click()
有时什么都不做,函数继续执行。
编辑 2
我尝试了 Luke 的建议,即从回调内部设置下一个超时,但没有任何改变(IE 始终有效,Chrome 随时可用)。
这是新代码:
一些背景:页面要求面板的形状,对于具有许多面、许多槽、许多紧固件等的面板,可以只是几个参数[nfaces=1, shape1='square', width1=100]
或数百个参数。在要求所有参数后,我们内部 3D 的脚本生成 CAD(可能大于 20KB)并启动 CAD 并要求执行脚本。
我想在客户端做所有事情,因为页面由 Domino Web 服务器提供服务,它甚至无法想象管理如此复杂的脚本。
c# - 在 c# 中设置 URL 协议的路径
所以我创建了一个 URL 协议来运行带有命令参数的应用程序。
这是我的代码:
问题是程序需要一些文件才能启动,但由于路径未“设置”而无法加载它们。
我如何设置这个路径来启动所有这些需要的文件(比如/cd
命令)?
javascript - 在 Windows 10 Edge 浏览器中使用 javascript 检测自定义 url 协议处理程序
在我们的 Web 应用程序中,我们需要使用带有Windows 10 EDGE 浏览器的 javascript 确定是否在 Windows 10 机器中注册了自定义 URL 协议处理程序。
如果自定义 URL 协议处理程序未在 Windows 10 机器中注册,我们将要求用户下载我们的桌面独立应用程序。如果注册,我们将使用注册的自定义 URL 协议处理程序启动我们的桌面独立应用程序。
由于 EDGE 是一种新浏览器,因此互联网上其他用户提供的解决方案无法正常工作。
我提到的在 EDGE 浏览器中对我不起作用的链接:
https://gist.github.com/keyvanfatehi/f2f521c654bab106fdf9
请帮帮我,谢谢
dynamics-crm - 如何完全禁用 Dynamics CRM 的 Skype 和 Lync 电话提供商
我们如何以受支持或不受支持的方式从 Dynamics CRM 2015 Online 中完全禁用 Skype 和 Lync 提供程序?
到目前为止我所尝试的:
- 在电话号码字段上创建了我自己的链接
- 试图找到附加到 DOM 中元素的任何 jQuery 事件处理程序
- 将空白事件处理程序分配给Mscrm.ReadFormUtilities.handlePhoneNumberClick(参考:http:// crmtipoftheday.com/2014/05/15/how-to-block-click-to-call-in-crm/)
仍然当我单击电话号码时,Dynamics 会创建一个空白页面并激活内联电话记录。
当我跑步时
从浏览器控制台,它不会创建空白页面或内联电话记录。
注意:这在 CRM 2015 Update 1 之前或在 Update 1 旧版表单呈现中不会发生。
有任何想法吗?
sharepoint - 使用 OWSSVR.dll 在 Sharepoint 列表中多选字段
我正在创建一个大型 SSIS 项目,以将数据从一系列 Sharepoint 列表移动到新的 Dynamics CRM 实施(在线)。SSIS 包使用 OData 源从列表中提取数据。
我的列表中有两列未显示在 OData 调用中。这两列具有 Multi-Select 或 Multi-Lookup 值。REST 服务不支持多选选择字段。(在另一个线程上找到:您尝试的方法仅适用于非多选的选择列。不幸的是,REST 接口不支持多选选择列。显然,SharePoint 2013 也是如此。)
因此,我需要尝试使用 OWSSVR.dll 访问 SharePoint 列表中这些列中的数据。我遇到问题的列表显示“无法显示此页面”或“无法访问此站点”,具体取决于我使用的浏览器。
我通过从列表设置中获取它来验证列表 ID。由于它不起作用,我去了另一个我已经迁移的 SharePoint 列表来验证 URL 格式。另一个列表有效并以 XML 格式返回数据。
我想知道 OWSSVR.dll 是否对多选值有相同的限制。有什么想法或建议吗?
伪 URLS(受限访问站点):
作品: http : //dummy.sharepointSite.Com/cases/_vti_bin/owssvr.dll?Cmd=Display&List= {b703d405-48c8-4211-9137-e1b50bdb0330}&XMLDATA=TRUE
损坏:http : //dummy.sharepointSite.Com/cases/_vti_bin/owssvr.dll?Cmd=Display&List= {8e148584-b5be-48f5-9343-85d23a7731cc}&XMLDATA=TRUE
c - 将一个参数拆分为多个参数
我正在从自定义 uRL 协议启动 ac 程序。
自定义 URL 协议对所有参数进行 urlencode 并将它们组合成一个字符串。没有办法解决这个问题。
这是我唯一的 Windows 尝试,但它崩溃了。getopt_long 不喜欢我新创建的 argv。
谢谢。