Summary
- Mozilla 2003 年的产品记录已把拦截弹窗列为浏览器功能,6 月发布 Mozilla 1.4 时又宣布改进。
- Microsoft 的 IE6 SP2 说明区分用户点击后出现的窗口与脚本自行打开的窗口;今天的
window.open()仍需逐次获得用户手势。
网页脚本要开新窗口,只需发出调用。人是否邀请过它,曾经是另一回事。Mozilla 的旧新闻档案在 2003 年 3 月已提到弹窗拦截,6 月发布 Mozilla 1.4 时又写到这项功能的改进。浏览器开始替读者守门:网页送来的开门请求,需要先过一道由浏览器掌握的关。
Microsoft 为 Windows XP Service Pack 2 编写的 IE6 部署指南把内置弹窗拦截器列为 Internet Explorer 的新功能,也介绍承接拦截消息的信息栏。Microsoft 于 2004 年 8 月 6 日宣布 SP2 交付制造商。产品随后分批进入用户电脑;有意思的设计已经写在指南里:浏览器开始追踪用户动作的来路。
Microsoft 对 IE6 SP2 的技术解释说,浏览器会判断弹窗出现前用户是否点击了链接或页面元素。跟在点击后面的窗口,与脚本自行推出的窗口得到不同待遇。被挡下的窗口会进入信息栏,用户仍可手动打开。浏览器查的是读者刚才是否真的点了这一下。
如今 Mozilla 的 window.open() 文档把规矩说得更细:弹窗应直接回应用户输入,每次调用都需要独立的手势;被拦截时可能返回 null。网页可以据此设计备用流程。按钮和代码仍归网页编写,但是否有多出来的窗口,已经不由它单方面拍板。
HTML 现行标准的用户激活机制又给这张请柬加上有效期。有些操作会消耗短暂的激活状态,下一次调用要等下一次真人操作。标准还考虑嵌套框架,防止一记点击被层层转手、反复花掉。一次点击只给刚发生的动作签发短期请柬。
弹窗拦截改变了网页的礼数。一个真正由按钮邀请的附加窗口仍有位置;脚本自己带来的一队窗口得在门口排队。window.open() 仍是网页的请求,浏览器补上了最后一句:谁敲的门?
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





