js当前页面打开小窗口 window.open

本文介绍了如何使用JavaScript设置一个高度350px,宽度480px的在线客服窗口,具备自定义样式(无滚动条、不可调整大小等),并详细讲解了window.open函数的参数配置。

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

     height=350 窗口高度
	 width=480 窗口宽度
	 scrollbars=no 不显示滚动条 
	 resizable = no 不能调整大小 
	 status = no  不显示状态栏 
	 toolbar = no 不显示工具栏 
	 menubar = no 不显示菜单栏
	 location=no  是否显示地址栏,yes为允许;
	 status=no  是否显示状态栏内的信息(通常是文件已经打开),yes为允许
	<p class="shangqiao" style="text-align: center;margin-top:100px;">打开在线客服</p>
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
		<script type="text/javascript">
			function openWin(url)
			 {                  
			  var name;                           //网页名称,可为空;
			  var iWidth=500;                         //弹出窗口的宽度;
			  var iHeight=570;                        //弹出窗口的高度;
			  //window.screen.height获得屏幕的高,window.screen.width获得屏幕的宽
			  var iTop = (window.screen.height-30-iHeight)/2;       //获得窗口的垂直位置;
			  var iLeft = (window.screen.width-10-iWidth)/2;        //获得窗口的水平位置;
			  window.open(url,name,'height='+iHeight+',innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=auto,resizable=no,location=no,status=no');
			 }
			$(function() {
				$('.shangqiao').click(function() {
					openWin('./666.html');
				});
			});
		</script>

转自:https://blog.csdn.net/solly793755670/article/details/79104211

### 判断当前窗口是否由 `window.open` 创建 可以通过检查全局对象 `window.opener` 来判断当前窗口是否是由 `window.open()` 方法创建的。如果当前窗口是通过 `window.open()` 打开,则 `window.opener` 将指向打开窗口的父窗口;如果是直接访问页面或刷新页面,则 `window.opener` 为 `null`。 以下是具体实现方式: ```javascript if (window.opener !== null && typeof window.opener === "object") { console.log("当前窗口是由 window.open() 方法创建的"); } else { console.log("当前窗口不是由 window.open() 方法创建的"); } ``` 此方法利用了 `window.opener` 的特性[^1],可以有效区分当前窗口是否被动态创建。 --- 另外需要注意的是,在某些情况下(例如用户手动关闭了父窗口),即使当前窗口最初是由 `window.open()` 创建的,`window.opener` 可能也会变为 `null`。因此建议在实际应用中结合业务逻辑进一步验证。 对于 Safari 浏览器而言,由于其严格的弹窗阻止策略[^4],可能会导致部分场景下无法正常检测到 `window.opener` 值的变化。此时需特别注意用户体验设计,避免因浏览器行为差异引发异常。 --- #### 注意事项 - 如果目标是在子窗口操作父窗口的内容,请确认跨域安全政策允许此类交互[^2]。 - Vue 或 React 类框架开发时,可能涉及异步加载资源的情况,应适当延时初始化以确保 DOM 完全渲染完成后再执行相关脚本[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值