【问题标题】:Run protocol handler without opening windows in Javascript运行协议处理程序而不在 Javascript 中打开窗口
【发布时间】:2011-03-11 13:23:01
【问题描述】:

我有一个使用 txmt 协议的 TextMate 打开 FILE 的 javascript。 它工作正常,但问题是运行此脚本时我有一个空白的 Safari 窗口。

document.onkeydown=function(e){
    if(e.which == 17) isCtrl=true;
    if(e.which == 69 && isCtrl == true) {
        mywindow = window.open("txmt://open/?url=file://FILE","myWindow");
        return false;
    }
}

空白窗口怎么打不开?

【问题讨论】:

    标签: javascript window.open


    【解决方案1】:

    试试window.location = "your link"

    【讨论】:

    • 有点棘手的解决方案。当协议未知时,将打开一个空窗口并离开当前页面。如果启用了 javascript,请创建一个隐藏的 iframe 来打开该 url。
    • @Erwinus - 同意,而且更改位置可能会破坏某些事情(长轮询是我遇到的一个例子)。可以在stackoverflow.com/a/635750/3412775 中找到如何实施 iFrame 解决方案的一个很好的示例
    【解决方案2】:

    您可以尝试使用XHR。可能会工作。

    【讨论】:

      【解决方案3】:

      “建立你的链接,然后模拟点击它。”是我对如何做到这一点的第一个想法。我现在已经尝试过了,但它不起作用,所以我编辑了答案以回复此评论。它适用于 http 链接,但不适用于其他任何东西。我把它留在这里是因为如果有人知道它为什么不起作用,我会很感兴趣。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-05
        • 1970-01-01
        • 2017-03-24
        • 1970-01-01
        • 2016-10-29
        • 1970-01-01
        相关资源
        最近更新 更多