window.open()在谷歌浏览器不支持问题

本文探讨使用window.open()在不同浏览器中弹出窗口的尺寸问题。在谷歌浏览器中,必须同时设置top、left、width和height参数才能生效,揭示了浏览器间的兼容性差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需求:点击某个按钮弹出一个小窗

选取方法:window.open() 

具体文档可以查看w3c

遇到的问题

按照文档的参数进行设置了宽高,发现弹出的小窗并没有改变,检查了resizable=true是没有问题的,于是又在360浏览器打开,咦,发现小窗的宽和高是改变了的,所以,一定是浏览器的兼容性问题,经过查找资料得出了以下结论:

在谷歌浏览器中top,left,width,height同时设置,缺一不可,否则就不生效

 

谷歌浏览器中使用 `window.open` 函数打开网址时,默认情况下,浏览器会尝试使用 HTTPS 协议。如果 HTTPS 不可用,则会自动降级到 HTTP 协议。要保持默认的 HTTP 协议并避免自动跳转至 HTTPS,可以采取以下几种方法: 1. **直接使用 HTTP 协议**: 直接在 URL 中指定使用 HTTP 协议,这样浏览器会尝试使用 HTTP 协议打开网址。 ```javascript window.open('http://example.com', '_blank'); ``` 2. **禁用自动跳转**: 虽然浏览器本身没有直接的选项来禁用自动跳转,但可以通过一些技巧来尝试阻止跳转。例如,可以在服务器端设置适当的 HTTP 头信息,或者在前端使用 JavaScript 进行控制。 ```javascript window.open('http://example.com', '_blank'); ``` 需要注意的是,浏览器会根据其安全策略自动处理协议跳转,客户端代码无法完全控制这一行为。 3. **使用中间页面**: 创建一个中间页面,该页面通过 JavaScript 强制使用 HTTP 协议打开目标网址。 ```html <!DOCTYPE html> <html> <head> <title>Open HTTP</title> <script> function openHttp() { var url = 'http://example.com'; window.open(url, '_blank'); } window.onload = openHttp; </script> </head> <body> <p>Opening HTTP URL...</p> </body> </html> ``` 然后在 `window.open` 中调用这个中间页面。 ```javascript window.open('path_to_intermediate_page.html', '_blank'); ``` 通过以上方法,可以在一定程度上控制浏览器使用 HTTP 协议打开网址。然而,需要注意的是,现代浏览器和网站通常优先使用 HTTPS 协议以确保安全性,因此强制使用 HTTP 可能会导致安全问题
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值