自定义协议处理程序在SSL页面上的Chrome中不起作用

渔获22

我已经在Web应用程序中成功创建并注册了自定义协议处理程序,并且在所有浏览器中都可以正常工作。关于启动外部应用程序的初始警告对话框很好。

但是,在部署应用程序且网站在SSL下运行时,自定义协议链接在Chrome中不再起作用。我看到以下消息出现在开发人员工具控制台中:

[已阻止] https://my.site.com/path/to/page的页面运行了来自iwd的不安全内容:-action = myaction

在Internet Explorer和Firefox中,相同的链接也可以正常工作。

关于如何进行这项工作的任何想法?顺便说一下,我的外部应用程序是安装在客户端上的控制台应用程序。

编辑:另外一条重要的信息是,该链接指定了一个目标,该目标是同一页面上的隐藏iframe。

渔获22

解决方案是不为Chrome用户指定目标框架。Chrome似乎正在查看从主页传递到嵌入式iframe的网址,并发现嵌入式iframe网址不安全,因此拒绝了该网址。

我认为Chrome并非总是这样,但是对于v30 +,解决方案似乎是在链接中指定目标并清空目标。

编辑-扩展解决方案

这是我用来清除链接的目标属性的JavaScript(仅适用于Chrome用户)-否则,简单的解决方案是首先不要在HTML中指定目标属性。

// Get a list of all the links with external commands
var commandButtons = $("a[target='my_command']");
updateCommandButtonTargetsForChrome();

// Remove target attribute for Chrome only users
function updateCommandButtonTargetsForChrome() {
    var browserInfo = getBrowserInfo();
    if (browserInfo[0] == "Chrome")
        commandButtons.attr("target", "");
}

function getBrowserInfo() {
    var n = navigator.appName, ua = navigator.userAgent, tem;
    var m = ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
    if (m && (tem = ua.match(/version\/([\.\d]+)/i)) != null) m[2] = tem[1];
    m = m ? [m[1], m[2]] : [n, navigator.appVersion, '-?'];
    return m;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自定义协议处理程序在MS Edge中不起作用

更新后,Chrome每次都会提示您自定义协议处理程序

如何让Chrome接受自定义协议处理程序

如何使Internet Explorer正确处理自定义协议处理程序?

自定义虚拟绑定处理程序不起作用

Laravel自定义WebSocket处理程序不起作用

在Windows中使用自定义SSH协议处理程序进行PuTTY自动登录

Java-注册自定义URL协议处理程序

创建一个自定义URL协议处理程序

Chromium Edge:-如何显示再次打开“自定义协议处理程序”时出现的警告

在Firefox中使用自定义协议处理程序来运行Shell脚本?

Android / iOS-自定义URI /协议处理

preventDefault()在Kendo网格的自定义单击处理程序中不起作用

按钮处理程序在自定义 MessageBox 类中不起作用

如何在Chrome中重置外部协议处理程序?

在Windows 10 Edge浏览器中使用JavaScript检测自定义URL协议处理程序

协议委托在自定义UIView按钮中不起作用

在 Github Pages 中删除自定义页面后,原始页面不起作用

角度的自定义错误处理程序不起作用

使用webpack时自定义处理程序不起作用

创建自定义松弛日志处理程序不起作用

Spring Security Java Config自定义注销处理程序不起作用

我的第一个自定义日志处理程序不起作用

Jquery Ui 可调整大小的自定义处理程序不起作用

Tomcat:自定义错误页面不起作用

烧瓶自定义错误页面500不起作用

自定义HTTP 403页面在Spring Security中不起作用

如果使用自定义颜色,则“setState”在导航页面中不起作用

自定义错误页面在 Laravel 5.3 中不起作用