【www.bbyears.com--php基础】
看了半天,终于到了我觉得实战的部分了,首先是window.open,说白了就是弹出窗口。
基础的来讲:
window.open("http://111cn.net", "topFrame");
等价的时候用没什么前途,所以这里还有别的用法,topFrame,也就是第二个参数,可以传入_self,_parent,top以及_blank,而第二个参数并不是已存在的窗口和框架时,会去读取第三个参数来决定,第三个参数中似乎一些都是不怎么好用的,主要是top,width,left,height位置。
比如:
代码如下 window.open("http://111cn.net", "_blank", " height=500, width=300, left=20, top=20");就会弹出一个窗口(不过大部分时候都是被和谐的命运)
除此以外,close()方法可以关闭这个弹出的窗口(其它窗口是无权操作的),另外还有moveTo()``resizeTo()这种由名便知的。
如果弹窗被屏蔽,一般而言会返回null并抛出错误,所以我们可以用
代码如下 var blocked = false;try {
var pop = window.open("http://111cn.net", "_blank", "height=500, width=300, left=20, top=20");
if (pop == null) {
blocked = true;
}
} catch(ex) {
blocked = true;
}
if (blocked) {
alert("The pop was blocked");
}
来检测弹窗是否被阻止了并提示。
然后稍微用前面的知识折腾了一下,具体在源代码里也能写的挺明白的,代码渣,勿怪。
演示
代码如下
<script>
function NewWindow() {
this.win = window.open("http://111cn.net", "_blank", " height=500, width=300, left=20, top=20");
}
NewWindow.prototype = {
constructor: NewWindow,
close: function () {
this.win.close();
},
resize: function () {
this.win.resizeTo(300, 300);
},
moveTo: function () {
this.win.moveTo(100, 100);
}
}
/* 第一种方式:简易版
var pop = window.open("http://111cn.net", "_blank", " height=500, width=300, left=20, top=20");
if (pop == null) {
alert("The pop was blocked!");
}
*/
/* 第二种方式:更精确 */
var blocked = false;
try {
var pop = window.open("http://111cn.net", "_blank", "height=500, width=300, left=20, top=20");
if (pop == null) {
blocked = true;
}
} catch(ex) {
blocked = true;
}
if (blocked) {
alert("The pop was blocked");
}
</script>