问题标签 [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.

0 投票
1 回答
1678 浏览

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

0 投票
3 回答
3355 浏览

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 服务器提供服务,它甚至无法想象管理如此复杂的脚本。

0 投票
1 回答
478 浏览

c# - 在 c# 中设置 URL 协议的路径

所以我创建了一个 URL 协议来运行带有命令参数的应用程序。

这是我的代码:

问题是程序需要一些文件才能启动,但由于路径未“设置”而无法加载它们。

我如何设置这个路径来启动所有这些需要的文件(比如/cd命令)?

0 投票
1 回答
2430 浏览

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

请帮帮我,谢谢

0 投票
1 回答
1585 浏览

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 旧版表单呈现中不会发生。

有任何想法吗?

0 投票
1 回答
1179 浏览

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

0 投票
0 回答
224 浏览

c - 将一个参数拆分为多个参数

我正在从自定义 uRL 协议启动 ac 程序。

自定义 URL 协议对所有参数进行 urlencode 并将它们组合成一个字符串。没有办法解决这个问题。

这是我唯一的 Windows 尝试,但它崩溃了。getopt_long 不喜欢我新创建的 argv。

谢谢。

0 投票
0 回答
877 浏览

ios - Swift 3:从不调用 UrlProtocol didCompleteWithError 委托

作为标题,我正在尝试构建自定义 url 协议。我发现了这一点,并完全遵循了提供的代码。

然而,这位代表

永远不会被触发或调用。

此外,编译器提示一条警告消息说它几乎符合URLSessionTaskDelegate的可选要求,编译器提供的快速修复是使其私有。

那么,如何调用didCompleteWithError委托,此处提供的代码是否遗漏了某些部分?或者这是一个已知问题?如果有任何解决方法或自定义 UrlProtocol 的更好的 Swift 3 示例,请告诉我。先谢谢了!、</p>

编辑1:

}

正如那里发布的代码,这些是我所做的更改,“加载”被调用,但“完成”从未被调用。

编辑2:

编译器提示的警告信息 几乎符合 URLSessionTaskDelegate 的选项要求