用javascript父視窗控制只彈出一個子視窗

來源:互聯網
上載者:User

近來網上經常流傳一些關於如何在父視窗控制只彈出一個子視窗 問題,我查看了一些,大部分都是只能解決部分或者很麻煩,還不算完美。比如有人是實現的這樣,使用的是Cookie,以下是例子。

首頁上做了一個快顯視窗,如何使其只彈出一次,返回首頁時不再彈出了。

---------------------------------------------------------------

<script>

window.open("http://www.yeboss.com.cn","yeboss","width=300,height=400")

</script>

---------------------------------------------------------------

cookie

---------------------------------------------------------------

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin

var expDays = 1; // number of days the cookie should last

var page = "only-popup-once.html";

var windowprops = "width=300,height=200,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes";

function GetCookie (name) {

var arg = name + "=";

var alen = arg.length;

var clen = document.cookie.length;

var i = 0;

while (i < clen) {

var j = i + alen;

if (document.cookie.substring(i, j) == arg)

return getCookieVal (j);

i = document.cookie.indexOf(" ", i) + 1;

if (i == 0) break;

}

return null;

}

function SetCookie (name, value) {

var argv = SetCookie.arguments;

var argc = SetCookie.arguments.length;

var expires = (argc > 2) ? argv[2] : null;

var path = (argc > 3) ? argv[3] : null;

var domain = (argc > 4) ? argv[4] : null;

var secure = (argc > 5) ? argv[5] : false;

document.cookie = name + "=" + escape (value) +

((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +

((path == null) ? "" : ("; path=" + path)) +

((domain == null) ? "" : ("; domain=" + domain)) +

((secure == true) ? "; secure" : "");

}

function DeleteCookie (name) {

var exp = new Date();

exp.setTime (exp.getTime() - 1);

var cval = GetCookie (name);

document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();

}

var exp = new Date();

exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function amt(){

var count = GetCookie(count)

if(count == null) {

SetCookie(count,1)

return 1

}

else {

var newcount = parseInt(count) + 1;

DeleteCookie(count)

SetCookie(count,newcount,exp)

return count

}

}

function getCookieVal(offset) {

var endstr = document.cookie.indexOf (";", offset);

if (endstr == -1)

endstr = document.cookie.length;

return unescape(document.cookie.substring(offset, endstr));

}

function checkCount() {

var count = GetCookie(count);

if (count == null) {

count=1;

SetCookie(count, count, exp);

window.open(page, "", windowprops);

}

else {

count++;

SetCookie(count, count, exp);

}

}

// End -->

</script>

<BODY OnLoad="checkCount()">

這個是網上隨便摘的一個例子,是不是感覺很多也很難看懂呢,下面我給大家說一種新方法,保證好看好使。

<script language="JavaScript" type="text/JavaScript">

<!-- Copyright fenggang at 2007/3/23

var w=null;

function MM_openBrWindow(theURL,winName,features) { //v2.0

if(w!=undefined&&isOpen()){

w.close();

}

w=window.open("",winName,features);

w.location.replace(theURL);

}

function isOpen()

{

try

{

w.document;

return true;

}

catch(ex)

{}

return false;

}

//-->

</script>

這個MM_openBrWindow()函數名是在Dreamweaver中常用的快顯視窗函數名,將這段代碼放進頁面裡

然後再做快顯視窗就只能探出一個視窗了,以上是精髓部分,下面是完整的一個測試頁的代碼,試試看吧。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>無標題文檔</title>

<script language="JavaScript" type="text/JavaScript">

<!-- Copyright fenggang at 2007/3/23

var w=null;

function MM_openBrWindow(theURL,winName,features) { //v2.0

if(w!=undefined&&isOpen()){

w.close();

}

w=window.open("",winName,features);

w.location.replace(theURL);

}

function isOpen()

{

try

{

w.document;

return true;

}

catch(ex)

{}

return false;

}

//-->

</script>

</head>

<body>

<a href="javascript:;" onClick="MM_openBrWindow(show.asp,,scrollbars=yes,resizable=yes,width=570,height=500)">title</a>

</body>

</html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.