作者:aloneloveu2005 | 来源:互联网 | 2023-07-31 12:06
1.Pop-upBlockerWindowsXPSP2在InternetExplorer中增加了Pop-upBlocker(弹出窗口阻止程序),它可以阻止或屏蔽大部分的弹出窗口。对
1.Pop-up Blocker
Windows XP SP2在Internet Explorer中增加了Pop-up Blocker(弹出窗口阻止程序),它可以阻止或屏蔽大部分的弹出窗口。对于由最终用户点击链接打开的窗口不会被影响,另外来自本地网和信任站点域的弹出窗口也不会被阻止。
Pop-up Blocker默认为开启状态,这样可以阻止自动打开和在后台打开的弹出窗口,但是用户点击链接打开的窗口仍然可以正常显示。
启用 Pop-up Blocker
可以使用三种不同的方法启用 Pop-up Blocker。
? 第一次出现时的提示
在第一个弹出窗口出现之前出现提示,询问用户是否启用 Pop-up Blocker。
? “工具” 菜单
在 Internet Explorer 中,在 工具 菜单上,点击 屏蔽弹出窗口, 然后点击 阻止弹出窗口.
? Internet 选项.
在 Internet Explorer 的 工具 菜单上,点击 Internet 选项,点击隐私选项卡,然后点击 屏蔽弹出窗口。然后点击选项,对 Pop-up Blocker 加以设置。
当一个弹出窗口被屏蔽时:
当一个站点的弹出窗口被屏蔽时,会在状态栏上显示一个通知和播放一个声音,而且将在显示区域上边地址栏下边显示信息栏(您可以不播放声音和显示信息栏,参见后面的高级设置选项)。点击状态栏上的通知,可以看到一个带有如下选项的菜单:
? 显示被阻止的弹出窗口。重新加载弹出窗口。
? 允许来自该站点的弹出窗口。将当前站点添加到 “允许” 列表。
? 阻止弹出窗口。开启或关闭 Pop-up Blocker。
? 弹出窗口选项。打开 “ 弹出窗口管理” 窗口。
信息栏则会显示弹出窗口被屏蔽消息并通知用户可以通过点击信息栏允许弹出窗口和其他设置:
? 显示被阻止的弹出窗口。重新加载弹出窗口。
? 允许来自该站点的弹出窗口。将当前站点添加到 “允许” 列表。
? 设置是否阻止弹出窗口和显示信息栏以及更多高级设置。
? 信息栏帮助。
高级设置选项
信任站点列表
最终用户和IT管理员能够通过将一些网站加入信任站点列表从而允许这些网站的自动弹出窗口。
过滤级别设置和其他选项
三种过滤级别:
高级:阻止所有的弹出窗口(可以通过按住ALT键点击链接打开窗口)
中级:阻止大部分自动弹出窗口(默认级别)
低级:允许安全站点的弹出窗口
其他选项:
当一个弹出窗口被屏蔽时是否播放一段声音
当一个弹出窗口被屏蔽时是否显示信息栏
*以下内容除非特别标注,否则都是在Pop-up Blocker的默认设置下。
阻止机理
Pop-up Blocker会屏蔽除了除createPopup()(IE5.5及以上版本支持,参见附录)之外的从脚本自动打开的任何窗口。受此影响的一些常用函数是:window.open(), showModelessDialog(), showModalDialog(), showHelp(), window.external.NavigateAndFind()。
2.检查方法
在已有的资料中,微软还没有提供可以检测用户是否打开了IE Blocker的功能,只是提供了如何检查窗口是否被阻止的方法。
对于window.open()打开的窗口,当窗口被阻止,那么函数将返回空值。当弹出被阻止时,在使用 window.open() 的返回值来避免脚本错误之前,请始终对该值进行检查。
这个例子显示如何检查函数返回值来判断用window.open()方法打开的弹出窗口是否被阻止。
对于使用showModelessDialog(), showModalDialog(), showHelp()自动打开的窗口,可以通过以下两种方式来处理弹出窗口被阻止的情况:
1 如果浏览器版本是IE 5.0及以上,那么就可以在Javascript代码中使用try/catch结构来处理。如下列代码所示:
在此例中,当页面初始化时通过openWin()函数自动打开的窗口将被阻止,并显示错误信息和错误代号。
2 让打开窗口的函数设置Javascript错误句柄。如下所示:
这个示例证明了通过设置错误句柄来捕获窗口被阻止时的异常信息。和以上方法一样,可以通过这种方式来通知用户禁用Pop-up Blocker或将站点加入可信站点域来查看弹出内容。
如何检测浏览站点的浏览器是否是SP2 中的 Internet Explorer
可以使用 window.navigator.userAgent 来检测。
var g_fIsSP2 = false;
function browserVersion()
{
g_fIsSP2 = (window.navigator.userAgent.indexOf(“SV1”) != -1);
if (g_fIsSP2)
{
//This browser is Internet Explorer in SP2.
}
else
{
//This browser is not Internet Explorer in SP2.
}
}
如果用户代理字符串中包含“SV1”,说明连接到您站点的浏览器是 SP2 中的 Internet Explorer。
3.绕过拦截方法一
弹出窗口的网页插入的代码:
Open.htm代码:
4.绕过拦截方法二
ForceWindow.iclass.js代码如下(使用、讲解、相关说明全部在注释中):
————————————————————————–
/**
* =========================================================================
* 本程序可自由复制、修改、传播,不得删除以下信息。如用于商业用途须经原作者同意方可使用。
* =========================================================================
* 程序名称:ForceWindow(@iClass.JS)
* 描 述:“冲破”广告拦截软件,强制弹出窗口。
* 版 本:1.0.0
* 创建时间:2004年1月19日
* 修改时间:2004年1月19日
* 文件名称:ForceWindow.iclass.js
* 作 者:钟钟
* 邮箱地址:zz@iecn.net zz315@163.com
* 版权声明:本程序属于iClass.JS,版权归作者所有。
* 有关iClass计划详见:http://www.iecn.net/forum/showthread.php?threadid=14811
* =========================================================================
*/
/**
* 定义ForceWindow类构造函数
* 无参数
* 无返回值
*/
function ForceWindow ()
{
this.r = document.documentElement;
this.f = document.createElement(“FORM”);
this.f.target = “_blank”;
this.f.method = “post”;
this.r.insertBefore(this.f, this.r.childNodes[0]);
}
/**
* 定义open方法
* 参数sUrl:字符串,要打开窗口的URL。
* 无返回值
*/
ForceWindow.prototype.open = function (sUrl)
{
this.f.action = sUrl;
this.f.submit();
}
/**
* 实例化一个ForceWindow对象并做为window对象的一个子对象以方便调用
* 定义后可以这样来使用:window.force.open(“URL”);
*/
window.force = new ForceWindow();
/**
* 用本程序弹出的窗口将不会被广告拦截软件拦截,但有一个缺点:你无法象对window.open弹出的窗口那样对外观进行定制。
* 你当然也可以在使用前实例化一个ForceWindow对象:
* var myWindow = new ForceWindow();
* 这样来使用:
* myWindow.open(“URL”);
* 本程序测试通过的浏览器:IE 5+、Firefox 1.0、Mozilla 1.7.5、Netscape 7.2、Opera 7.23
* 友情提示:如果你将本程序用于强制弹出广告,请更多的想想浏览者的感受!
*/
5.绕过拦截方法三
绕过拦截的弹出窗口 ——————
弹出窗口示例
window_open.html
faisun@sina.com
–>
6.其它不被拦截的情况
对于页面中通过链接打开的窗口一般不会被拦截.
当按住CTRL 键时 可以临时允许弹出窗口!