请教 JS 的 window open 问题

当前屏幕分辨率为1280*1024,IE7下使用
[code="javascript"]window.open('', '', 'left=1000,top=1000,width=500,height=500');[/code]
打开一个新窗口,新窗口会超出屏幕,这种情况是正常的。

但是在我们的系统中,不知道什么位置做了什么样的设置,窗口打开的时候只能打开在屏幕范围之内,在上面的window.open命令里面,新窗口以宽度500,高度500的大小打开,但是位置从右下角开始计算,紧贴这屏幕的右下角,导致左上角的位置出错,如图所示
[img]http://dl.iteye.com/upload/attachment/191432/acc6eecf-d659-3bea-9cb1-84df2ae453d0.jpg[/img]

问题:
在页面中做了那些设置会使窗口不能打开在屏幕之外?

多谢!

[b]问题补充:[/b]

mginobili (初级程序员)

谢谢,但是你的方法不对,我单独写HTML用window.open就可以,而在我们的系统里面不可以,所以怀疑我们系统里面有某些设置
[b]问题补充:[/b]


因为项目现在的需求是有可能有的用户会使用屏幕扩展,也就是两个显示器,我需要弹出窗口在两个显示器中都能打开,现在项目中不知道什么地方做了什么限制,使得弹出窗口不能超出第一个显示器。

在一个显示器里面的功能我已经实现了,现在第二个显示器的工作就停滞在这个问题上面了,希望有高手能指点一二,多谢


[b]问题补充:[/b]
mginobili:

谢谢,window.open没有被重写,这一点可以肯定,JS文件已经翻过一遍了


[b]问题补充:[/b]

resizable也不成功,不知道有什么方法能控制新打开的窗口能否超出屏幕范围?

项目中的页面结构是一个主页面,里面有一个IFRAME,内容页面都在IFRAME里面,这样整个页面是不刷新的,所以在最外层的页面MainPage可以控制这个页面范围,我一开始怀疑MainPage的body标签里面有哪些属性控制了这个效果,可是查了一下也没有


[b]问题补充:[/b]

蔡华江

谢谢,可能是我的问题没有说太清楚,我只是需要窗口正常打开,

比如我现在的分辨率是[color=green]1280*1024[/color],

窗口打开的命令
[code="javascript"]window.open('', '', 'left=1350,top=100,width=500,height=500'); [/code]

会使窗口打开在屏幕之外(因为我要实现屏幕扩展,两个相同的显示器,分辨率一样,可以看作是一个分辨率是[color=blue]2560*1024[/color]显示器),这样就是我想要的结果.

但是现在的问题是,在我的系统中不知道什么原因如果left的值(或者left+width或者top+height)大于第一个显示器的宽度(或者高度),新打开的窗口没有打开在指定的位置,而是贴着第一个显示器的右侧(和下端)按照参数中指定的大小打开,也就是上面图中所显示的效果,这显然不是我想要的。

所以我怀疑在我的系统中是否原来有相关的代码进行了新弹出窗口的限制,但是我没有找到(项目是老项目,我没有从一开始就开始做),希望有朋友能帮忙分析一下原因。再次感谢一下。


[b]问题补充:[/b]
mginobili

对不起,使用你的方式改一下IE的安全级别在项目里面可以了,但是为什么之前自己写简单的Demo的时候可以,到项目里面就不行了呢?


7个回答

ie浏览器如下设置:

工具栏【菜单】--> 【internet选项】 】
【安全】Tab子页 "安全级别"中安全设置窗口【其他】分支 里面有一项允许“脚本初始化的窗口,没有大小和位置”的option限制勾选了

你那个并不是打开位置从右下角开始计算 而是'left=1000,top=1000 这两个参数导致的 left意思就是弹出窗口左上角距离屏幕左边的距离 Top是距离上方的距离
一般在200-300就可以了 因为屏幕一般都是1024*768吧

那你可以查找一下项目

看看window.open()方法是否被重写过了

搜搜js文件看看吧

[color=indigo][b]那就加上参数resizable=no试试吧[/b][/color]

请问你要的是不是让弹出面板靠在右下方排列?
[code="js"]window.open('', '', 'left='+(document.body.clientWidth+window.screenLeft-510)+',top='+(document.body.clientHeight+window.screenTop-510)+',width=500,height=500');[/code]

清楚你的思维了,但是宽分辨率中找到第二块屏的大小并居中并不是一件容易的事。
并且如果window.open('', '','left=1350,top=100,width=500,height=500'); 的话,弹出窗口应当是在屏幕外面的。
所以会不是操作系统设置的问题,可以测试一下document.body.clientWidth及screenWidth大小。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐