我在firefox中遇到了问题。到目前为止,我的研究告诉我,没有一种可靠的方法可以解决我的问题,但我想要以防万一。
我有以下javascript / jquery打开一个新窗口,按下我页面上的按钮触发:
alipayTransactionModalTrigger.click(function() {
NIWindow=window.open("<!--ALIPAY_CONF_REDIRECT_URL-->", "NI payment");
alipayTransactionModal.dialog("open");
});
在Chrome和Firefox中,这会打开一个新框架,框架会获得焦点。这可以。但是,如果用户将此新框架保持打开状态,则会返回到我的原始页面。他们可以点击按钮再次触发此事件。如果发生这种情况,新帧将按原样重新加载,但在Firefox中,新帧不会将此重点放在此刷新上。我不确定为什么它会将焦点集中在初始的新帧加载上,但如果使用相同的事件触发器刷新帧,则不会拉焦。我还没有勇气在IE中检查这个......
这是你无法可靠控制的事情之一吗?或者有办法做到这一点?注意,我已尝试在上面的初始窗口打开代码行之后使用NIWindow.focus()。没有运气。
我相信我读过一些关于可能使用警报的内容,但我不确定如何实现所描述的解决方案,而且我读到这是一个有点讨厌的解决方案。
我可以随时打开一个新窗口“_blank”,这样可以保证焦点,但新打开的帧URL使用基于父窗口的参数。我无权访问该代码,因此我无法添加检查以确保数据匹配,直到我从此重定向获得响应
答案 0 :(得分:0)
为每个新窗口指定一个新名称。您是否有理由重复使用"NI payment"
名称?
如果您的代码依赖于此窗口名称,则应考虑直接传递窗口引用(NIWindow)而不是名称。注入/传递依赖关系而不是依赖于魔法超级全局是一种更好的方法。