gpt4 book ai didi

javascript - Chrome JavaScript 位置对象

转载 作者:行者123 更新时间:2023-11-29 15:47:36 25 4
gpt4 key购买 nike

我正在尝试使用与这些应用程序关联的自定义协议(protocol)名称从浏览器启动 3 个应用程序。这对于在 stackoverflow 上启动的其他线程来说可能看起来很熟悉,我相信它们对解决这个问题没有帮助,所以请不要关闭这个线程,它需要与其他线程中建议的方法不同的方法。

例子:

ts3server://a.b.c?property1=value1&property2=value2
...
...

启动这些应用程序我会做

location.href = ts3server://a.b.c?property1=value1&property2=value2
location.href = ...
location.href = ...

这在 FF 中有效但在 Chrome 中无效

我认为当实际上只有最后一个更改存在时,可以通过优化写入次数来实现。

所以我这样做了:

function a ()
{
var apps = ['ts3server://...', 'anotherapp://...', '...'];

b(apps);
}

function b (apps)
{
if (apps.length == 0) return;

location.href = apps[0]; alert(apps[0]);

setTimeout(function (rest) {return function () {b(rest);};} (apps.slice(1)), 1);
}

但它并没有解决我的问题(实际上只有第一个 location.href 分配被考虑在内,即使其他调用在第一个调用之后发生足够长的时间(由于更改超时延迟到比方说 10000)应用程序没有启动(显示警报)。

如果我尝试分别访问每个 URI,应用程序就会启动(首先我通过单击一个按钮调用 location.href = uri1,然后我调用 location.href = uri2 通过再次点击另一个按钮)。

替换:

location.href = ...

与:

var form = document.createElement('form');
form.action = ...
document.body.appendChild(form);
form.submit();

也没有帮助,也没有:

var frame = document.createElement('iframe');
frame.src = ...
document.body.appendChild(frame);

是否有可能做我想做的事?如何实现?

编辑:

改写的总结

我想在单击链接或类似元素的按钮后启动多个应用程序。我想通过启动与自定义协议(protocol)关联的应用程序来实现这一点......我会持有一个链接列表(在每个链接中使用一个协议(protocol))并且我会尝试为所有项目做“location.src = link”列表。当与'for'一起使用时,它会优化为仅分配一次(最后一个值)所以我使函数类似于延迟递归函数(这消除了优化并真正强制了 3 个不同的 location.src = list [head] 调用时该列表在每次调用之前被切分,以便考虑所有链接并将它们分配给 location.src。这在 Mozilla Firefox 中一切正常,但在谷歌中,在第一次分配后,其余分配无效(它们可能已执行但不会触发关联的应用程序启动))

最佳答案

您是否在遍历元素时遇到问题?如果是这样,请尝试 for..in 语句 here

或者您在导航时遇到了问题?如果是这样尝试 window.location.assign(new_location);

[编辑]你也可以使用 window.location = "...";

[编辑]好的,所以我做了一些工作,这就是我得到的。在这个例子中,我打开了一个随机的黑桃 A 链接。这是一个自定义协议(protocol)。点击 here然后点击“点击我”。注释显示 JSFiddle 调试器发现错误的位置。

关于javascript - Chrome JavaScript 位置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9285550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com