gpt4 book ai didi

javascript - 关于 window.open 的奇怪 Opera 问题

转载 作者:行者123 更新时间:2023-11-28 21:01:48 25 4
gpt4 key购买 nike

我正在设计一个新的书签,并在 Opera 上测试它。

这是我的代码:

javascript:(function(){var a=window.open('http://www.google.com','Ok','left='+((window.screenLeft||window.screenX)+10)+',top='+((window.screenY||window.screenTop)+0)+',height=200px,width=400px,resizable=1,alwaysRaised=1,location=1,links=0,scrollbars=0,toolbar=0');window.setTimeout(function(){a.focus()},250)})();

问题是新窗口不会出现在顶部,而是出现在距顶部约 200px 的位置(在 Internet Explorer、Firefox 和 Chrome 等其他浏览器中效果很好)。

那么,为什么这个窗口没有出现在 Opera 的顶部呢?

最佳答案

你的问题来自于这样一个事实:在Opera中,window.screenYwindow.screenTop都被定义了,并且screenY似乎总是等于 0,即 falsy JavaScript 中的值,所以

window.screenY||window.screenTop

在 Opera 中总是返回 window.screenTop,而您实际上需要第一个值。

正确的检查方法是:

'screenY' in window ? window.screenY : window.screenTop

这是您的完整代码,我还更新了对 screenLeft/screenX 的检查:

javascript:(function(){var a=window.open('http://www.google.com','Ok','left='+(('screenLeft' in window ? window.screenLeft : window.screenX)+10)+',top='+(('screenY' in window ? window.screenY : window.screenTop)+0)+',height=200px,width=400px,resizable=1,alwaysRaised=1,location=1,links=0,scrollbars=0,toolbar=0');window.setTimeout(function(){a.focus()},250)})();

祝你好运。

关于javascript - 关于 window.open 的奇怪 Opera 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812237/

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