关于JS弹出窗口;躲避拦截窗口功能.

原创 2004年07月02日 13:34:00

// 把下面的代码保存下来.里面提供了Window.Open所用到的参数
// system.window.js
// 具体功能看相应的注释

/*
* 调用:Object.Window
* 作用:Window 引用类
* 参数:
*  Method   窗口打开方式
*  Href   窗口地址
*  Name   窗口标签
*  ToolBar   显示工具条 yes/no
*  MenuBar   显示菜单栏 yes/no
*  ScrollBar  显示滚动条 yes/no
*  UrlBar   显示地址栏 yes/no
*  Status   显示状态栏 yes/no
*  FullScreen  全屏窗口  yes/no
*  Resize   重设窗口大小 yes/no
*  Width   窗口宽度  yes/no
*  Height   窗口高度  yes/no
*  Place   窗口位置  center/top/openpop
*  ReturnValue  返回值
*  TextValue  文本显示
*  ConfirmTrue  确认返回
*  ConfirmFalse 取消返回
*  Params   参数
* 返回:
*/
function Window()
{
 var Method;
 var Params;
 var Splits;
 var Href;
 var Name;
 var ToolBar;
 var MenuBar;
 var ScrollBar;
 var UrlBar;
 var Status;
 var FullScreen;
 var Resize;
 var Width;
 var Height;
 var Place;
 var Top;
 var Left;
 var ReturnValue;
 var TextValue;
 var ConfirmTrue;
 var ConfirmFalse;

 this.Method = Method;
 this.Params = Params;
 this.Splits = Splits;
 this.Href = Href;
 this.Name = Name;
 this.ToolBar = ToolBar;
 this.MenuBar = MenuBar;
 this.ScrollBar = ScrollBar;
 this.UrlBar = UrlBar;
 this.Status = Status;
 this.FullScreen = FullScreen;
 this.Resize = Resize;
 this.Width = Width;
 this.Height = Height;
 this.Place = Place;
 this.Top = Top;
 this.left = Left;
 this.ReturnValue = ReturnValue;
 this.TextValue = TextValue;
 this.ConfirmTrue = ConfirmTrue;
 this.ConfirmFalse = ConfirmFalse;
}

Window.prototype.Init = function()
{
 this.Method = this.Method?this.Method:"open";
 this.Params = this.Params?this.Params:"";
 this.Splits = this.Splits?this.Splits:"|";
 this.Href = this.Href?this.Href:"about:blank";
 this.Name = this.Name?this.Name:Math.round(Math.random() * 100000);
 this.ToolBar = this.ToolBar?this.ToolBar:"no";
 this.MenuBar = this.MenuBar?this.MenuBar:"no";
 this.ScrollBar = this.ScrollBar?this.ScrollBar:"no";
 this.UrlBar = this.UrlBar?this.UrlBar:"no";
 this.Status = this.Status?this.Status:"no";
 this.FullScreen = this.FullScreen?this.FullScreen:"no";
 this.Resize = this.Resize?this.Resize:"no";
 this.Width = this.Width?this.Width:parseInt(screen.width/2);
 this.Height = this.Height?this.Height:parseInt(screen.height/2);
 this.Place = this.Place?this.Place:"center";
 this.Top = this.Top?this.Top:"30";
 this.Left = this.Left?this.Left:"30";
 this.ReturnValue = this.ReturnValue?this.ReturnValue:"";
 this.TextValue = this.TextValue?this.TextValue:"";
 this.ConfirmTrue = this.ConfirmTrue?this.ConfirmTrue:true;
 this.ConfirmFalse = this.ConfirmFalse?this.ConfirmFalse:false;
}

Window.prototype.Open = function()
{
 // .toLowerCase()
 switch (this.Method)
 {
  /*
  * 类别:Open
  * 功能:Window.Open 弹出窗口 中所有功能;
  */
  case "open":
  if (this.Place == "center")
  {
   OpenWinTopXY = "top="+((screen.availHeight-this.Height)/2)+",left="+((screen.availWidth-this.Width)/2);
  }else if (this.Place == "top"){
   OpenWinTopXY = "top=0,left=0";
  }else{
   OpenWinTopXY = "top="+this.Top+",left="+this.Left+"";
  }

  window.open (this.Href,""+this.Name+"","location=no;toolbar="+this.ToolBar+",menubar="+this.MenuBar+",scrollbars="+this.ScrollBar+",resizable="+this.Resize+",directories="+this.UrlBar+",fullscreen="+this.FullScreen+",status="+this.Status+",titlebar=no,width="+this.Width+",height="+this.Height+","+OpenWinTopXY+"");
  break;

  /*
  * 类别:showModlDialog
  * 功能:对话窗口
  */
  case "showModalDialog":
  var DialogObj;
  DialogObj = window.showModalDialog (this.Href,"","dialogWidth:'"+this.Width+"';dialogHeight:'"+this.Height+"';status:'"+this.Status+"';scroll='"+this.ScrollBar+"';help:no");
  return (""+DialogObj+"");
  break;

  /*
  * 类别:showHelp
  * 功能:HELP帮助
  */
  case "showHelp":
  window.showHelp(this.Href);
  break;

  /*
  * 类别:Confirm
  * 功能:确认对话框
  */
  case "confirm":
  var msgbox = window.confirm(this.TextValue);
  if (msgbox)
  {
   eval(this.ConfirmTrue);
  }else{
   eval(this.ConfirmFalse);
  }
  break;

  case "popup":
  if (this.ie)
  {
   this.PopTop=50;
   this.oPopup = window.createPopup();
   var html=this.TextValue;
   this.oPopup.document.body.innerHTML = html;
   popshow();
  }
  break;

  /*
  * 类别:缺省状态
  * 功能:当前页面转发
  */
  default:
  top.location=this.Href;
  break;
 }
}

//
// 以下是调用的页面文件
//

<HTML>
<HEAD>
<TITLE>测试</TITLE>
<meta http-equiv="content-type" content="text/html; charset=gb2312"/>
<meta http-equiv="pragma" content="no-cache"/>
<meta name="keywords" content="cms.contnew.com"/>
<meta name="version" content="1.0.1"/>
<script language="javascript" src="system.window.js"></script>
</HEAD>

<script language="JavaScript">
var Window = new Window;

function OpenWin()
{
 Window.Method="open";
 Window.Href="http://cms.contnew.com";
 Window.Width="345";
 Window.Height="200";
 Window.Init();
 Window.Open();
}

</script>
<input type="button" value="提交" onclick="OpenWin();"/>
</html>

关于JS弹出窗口;躲避拦截窗口功能.

// 把下面的代码保存下来.里面提供了Window.Open所用到的参数// system.window.js// 具体功能看相应的注释 /** 调用:Object.Window* 作用:Window...
  • BainStudio
  • BainStudio
  • 2004年07月02日 13:34
  • 1955

关于JS弹出窗口;躲避拦截窗口功能

方法一: window.open(Url,"_blank");方法二:// 把下面的代码保存下来.里面提供了Window.Open所用到的参数// system.window.js// 具体功能看相应...
  • sgear
  • sgear
  • 2008年06月26日 15:38
  • 2146

JS 弹出新窗口被拦截

如下代码: 如果通过JS脚本,控制"btnSub"按钮提交Form表单,或者在Ajax中使用window.open方法时,在某些浏览器下(比如IE6)就会出现弹出新窗口被拦截...
  • u010119868
  • u010119868
  • 2014年02月20日 14:43
  • 1008

解决JS弹出新窗口被浏览器阻止的解决方案

本文转载自:http://blog.csdn.net/cntanghai/article/details/6643522 在js中通过open弹出窗口可能会被阻止,我尝试这段代码: ...
  • yuan1013922969
  • yuan1013922969
  • 2016年09月07日 09:27
  • 6230

用JS打开新窗口,防止被浏览器阻止的方法

相信做web前端或者使用JS的朋友都会遇到需要在新窗口打开页面的情况,现在浏览器大都具有弹出窗口拦截功能,所以传统的window.open()不再那么好用了。借鉴于网上查到的方法和我个人的实践,把弹出...
  • tinico
  • tinico
  • 2014年01月09日 09:19
  • 25613

[原创] 避免弹出窗口被如Google工具条拦截的解决办法

SUNDY原创 20004-11-03现在网络弹出窗口乱七八糟,很多人不愿意看到弹出广告窗口,可是有的有用的窗口又想让别人看到,用window.opne方法打开窗口都被拦截了,一下方法可以解决让你的窗...
  • feng_sundy
  • feng_sundy
  • 2004年11月03日 14:47
  • 2588

IE9设置阻止弹出窗口

问题:当打开一些网站时,阻止了弹出窗口,但是会提示阻止信息。 解决: IE9设置阻止弹出窗口:工具---->Internet选项----->隐私----->弹出窗口阻止程序----->启用弹出窗口...
  • Wentasy
  • Wentasy
  • 2012年03月03日 15:30
  • 4216

js解决window.open 被IE弹出窗口阻止程序拦截

function openWin(obj) { $.ajax({ type:"post", async:false, dataType...
  • AVGworkld
  • AVGworkld
  • 2016年12月16日 10:29
  • 716

一个通过asp.net弹出窗口不被IE阻止的方法

刚开始为了弹出窗口而这样写的:Response.Write("window.open(" & url & ",null)") 结果昨天一切OK,今天却不行了。全部都提示被阻止。我的操作系统是2003的...
  • erqie
  • erqie
  • 2006年11月22日 16:49
  • 4328

如何让js弹出新窗口不被拦截

(一)、问题一 一般情况下,如果直接在js中调用window.open()函数去打开一个新窗口,浏览器会对弹出的窗口进行拦截,因为浏览器会把该窗口认为是弹出广告等用户不想得到的窗体 1、解决方法 ...
  • yb305
  • yb305
  • 2016年11月23日 10:41
  • 1939
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于JS弹出窗口;躲避拦截窗口功能.
举报原因:
原因补充:

(最多只允许输入30个字)