美文网首页
09.JavaScirpt window

09.JavaScirpt window

作者: Lv_0 | 来源:发表于2018-01-08 22:40 被阅读0次
    • window 窗口

    1. 所有浏览器都支持window对象,它表示浏览器窗口本身;
    2. 所有 JavaScript 全局对象、全局函数以及全局变量均自动成为 window 对象的成员
    3. 全局变量是window对象的属性,全局函数是window对象的方法;
    4. document也是window对象的属性
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style type="text/css">
                .code{
                    color: gray;
                    border: 1px solid gainsboro;
                    font-size: 15px;
                }
                pre{
                    margin: 1em 0em 1em -19em;
                    font-family: "楷体";
                }
                .result{
                    color: gray;
                    background-color: ghostwhite;
                    font-size: 16px;
                    padding: 0.5em 1em;
                }
                h3{
                    color: red;
                }
                .result span:first-child{
                    display: block;
                    float: left;
                    width: 10em;
                    color: black;
                }
            </style>
            <script type="text/javascript">
                function objDisplay(eleId,obj){
                    if(typeof(eleId)!="string" || typeof(obj)!="object"){
                        alert("Function objDisplay() need the first parameter string and second object !")
                    }else{
                        var ele = document.getElementById(eleId);
                    
                        if(!ele || !obj){
                            alert("Please check the parameter !")
                        }else{
                            for(i in obj){
                                var div = document.createElement("div");
                                
                                for(var j=0;j<2;j++){
                                    var span = document.createElement("span");
                                    if(j==0) span.innerHTML = i+" : ";
                                    else span.innerHTML = obj[i];
                                    div.appendChild(span);
                                }
                            ele.appendChild(div);
                            }
                        }
                    }               
                }
            </script>
        </head>
        <body>
            <ul>
                <li>
                    <h3>window</h3>
                    <h4>代码:</h4>
                    <div class="code">
                        <pre>
                        //window属性和方法
                        var winDict = {
                            "windowWidth":window.innerWidth,
                            "windowHeight":window.innerHeight,
                            "window.open()":"打开新窗口",
                            "window.close()":"关闭当前窗口",
                            "window.moveTo()":"移动当前窗口",
                            "window.resizeTo()":"调整当前窗口的尺寸"
                        }
                        //涵盖所有浏览器的写法(浏览器的视口,不包括工具栏和滚动条)
                        var winHeight = window.innerHeight
                        ||document.documentElement.clientWidth
                        ||document.body.clientWidth;
                        
                        var winWidth = window.innerWidth
                        ||document.documentElement.clientWidth
                        ||document.body.clientWidth;
                        
                        objDisplay("winDict",winDict);
                        </pre>
                    </div>              
                    <h4>结果:</h4>
                    <div id="winDict" class="result"></div>
                    <hr />
                    <script>
                        //window属性和方法
                        var winDict = {
                            "windowWidth":window.innerWidth,
                            "windowHeight":window.innerHeight,
                            "window.open()":"打开新窗口",
                            "window.close()":"关闭当前窗口",
                            "window.moveTo()":"移动当前窗口",
                            "window.resizeTo()":"调整当前窗口的尺寸"
                        }
                        //涵盖所有浏览器的写法(浏览器的视口,不包括工具栏和滚动条)
                        var winHeight = window.innerHeight
                        ||document.documentElement.clientWidth
                        ||document.body.clientWidth;
                        
                        var winWidth = window.innerWidth
                        ||document.documentElement.clientWidth
                        ||document.body.clientWidth;
                        
                        objDisplay("winDict",winDict);
                    </script>
                </li>               
            </ul>       
        </body>
    </html>
    
    image.png

    • screen 屏幕

    1. window.screen 对象在实际写的时候,可以不写window;
    2. screen.availWidth/screen.availHeight 属性返回访问者屏幕的宽度/高度,以像素计,减去界面特性,比如窗口任务栏;
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style type="text/css">
                .code{
                    color: gray;
                    border: 1px solid gainsboro;
                    font-size: 15px;
                }
                pre{
                    margin: 1em 0em 1em -19em;
                    font-family: "楷体";
                }
                .result{
                    color: gray;
                    background-color: ghostwhite;
                    font-size: 16px;
                    padding: 0.5em 1em;
                }
                h3{
                    color: red;
                }
                .result span:first-child{
                    display: block;
                    float: left;
                    width: 10em;
                    color: black;
                }
            </style>
            <script type="text/javascript">
                function objDisplay(eleId,obj){
                    if(typeof(eleId)!="string" || typeof(obj)!="object"){
                        alert("Function objDisplay() need the first parameter string and second object !")
                    }else{
                        var ele = document.getElementById(eleId);
                    
                        if(!ele || !obj){
                            alert("Please check the parameter !")
                        }else{
                            for(i in obj){
                                var div = document.createElement("div");
                                
                                for(var j=0;j<2;j++){
                                    var span = document.createElement("span");
                                    if(j==0) span.innerHTML = i+" : ";
                                    else span.innerHTML = obj[i];
                                    div.appendChild(span);
                                }
                            ele.appendChild(div);
                            }
                        }
                    }               
                }
            </script>
        </head>
        <body>
            <ul>
                <li>
                    <h3>screen</h3>
                    <h4>代码:</h4>
                    <div class="code">
                        <pre>
                        //screen属性
                        var scrDict = {
                            "availWidth":window.screen.availWidth,
                            "windowHeight":screen.availHeight,
                        }
                        
                        objDisplay("winDict",scrDict);
                        </pre>
                    </div>              
                    <h4>结果:</h4>
                    <div id="winDict" class="result"></div>
                    <hr />
                    <script>
                        //screen属性
                        var scrDict = {
                            "availWidth":window.screen.availWidth,
                            "windowHeight":screen.availHeight,
                        }
                        
                        objDisplay("winDict",scrDict);
                    </script>
                </li>               
            </ul>       
        </body>
    </html>
    
    image.png

    • location 位置

    1. window.location 对象用于获得当前页面的地址 (URL),并可以把浏览器重定向到新的页面;
    2. window.location 对象在编写时可不使用 window 这个前缀;
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style type="text/css">
                .code{
                    color: gray;
                    border: 1px solid gainsboro;
                    font-size: 15px;
                }
                pre{
                    margin: 1em 0em 1em -19em;
                    font-family: "楷体";
                }
                .result{
                    color: gray;
                    background-color: ghostwhite;
                    font-size: 16px;
                    padding: 0.5em 1em;
                }
                h3{
                    color: red;
                }
                .result span:first-child{
                    display: block;
                    float: left;
                    width: 10em;
                    color: black;
                }
                button{
                    background-color: blueviolet;
                    color: white;
                    border: 2px solid plum;
                    border-radius: 2em;
                    padding: 0.5em;
                    margin: 0.5em;
                }
                button:focus{
                    color: bisque;
                }
            </style>
            <script type="text/javascript">
                function objDisplay(eleId,obj){
                    if(typeof(eleId)!="string" || typeof(obj)!="object"){
                        alert("Function objDisplay() need the first parameter string and second object !")
                    }else{
                        var ele = document.getElementById(eleId);
                    
                        if(!ele || !obj){
                            alert("Please check the parameter !")
                        }else{
                            for(i in obj){
                                var div = document.createElement("div");
                                
                                for(var j=0;j<2;j++){
                                    var span = document.createElement("span");
                                    if(j==0) span.innerHTML = i+" : ";
                                    else span.innerHTML = obj[i];
                                    div.appendChild(span);
                                }
                            ele.appendChild(div);
                            }
                        }
                    }               
                }
            </script>
        </head>
        <body>
            <ul>
                <li>
                    <h3>location</h3>
                    <h4>代码:</h4>
                    <div class="code">
                        <pre>
                        //location属性
                        var lcaDict = {
                            "hostname":window.location.hostname,//返回 web 主机的域名
                            "pathname":location.pathname,//返回当前页面的路径和文件名
                            "port":location.port,//返回 web 主机的端口
                            "protocol":location.protocol,//返回所使用的 web 协议(http:// 或 https://)
                            "href":location.href,//属性返回当前页面的 URL
                        }
                        
                        objDisplay("lcaDict",lcaDict);
                        </pre>
                    </div>              
                    <h4>结果:</h4>
                    <div id="lcaDict" class="result"></div>
                    <!--location.assign() 方法加载新的文档-->
                    <button onclick="location.assign('https://www.jianshu.com/')">Assign</button>
                    <hr />
                    <script>
                        //location属性
                        var lcaDict = {
                            "hostname":window.location.hostname,//返回 web 主机的域名
                            "pathname":location.pathname,//返回当前页面的路径和文件名
                            "port":location.port,//返回 web 主机的端口
                            "protocol":location.protocol,//返回所使用的 web 协议(http:// 或 https://)
                            "href":location.href,//属性返回当前页面的 URL
                        }
                        
                        objDisplay("lcaDict",lcaDict);
                    </script>
                </li>               
            </ul>       
        </body>
    </html>
    
    image.png

    • history 历史

    1. history.back()方法加载历史列表中的前一个 URL,与在浏览器点击后退按钮相同;
    2. history.forward()方法加载历史列表中的下一个 URL,与在浏览器中点击按钮向前相同;
    3. window.history 对象在编写时可不使用 window 这个前缀
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                .code{
                    color: gray;
                    border: 1px solid gainsboro;
                    font-size: 15px;
                }
                pre{
                    margin: 1em 0em 1em -19em;
                    font-family: "楷体";
                }
                .result{
                    color: gray;
                    background-color: ghostwhite;
                    font-size: 16px;
                }
                ul li h3{
                    color: red;
                }
                button{
                    background-color: blueviolet;
                    color: white;
                    border: 2px solid plum;
                    border-radius: 2em;
                    padding: 0.5em;
                    margin: 0.5em;
                }
                button:focus{
                    color: bisque;
                }
            </style>
        </head>
        <body>
            <ul>
                <li>
                    <h3>history</h3>
                    <h4>代码:</h4>
                    <div class="code">
                        <pre>
                        &lt;button name="back" onclick="window.history.back()"&gt;back&lt;/button&gt;
                        &lt;button name="forward" onclick="history.forward()"&gt;forward&lt;/button&gt;
                        </pre>
                    </div>
                    <h4>结果:</h4>
                    <div class="result">
                        <button name="back" onclick="window.history.back()">back</button>
                        <button name="forward" onclick="history.forward()">forward</button>
                    </div>
                </li>
                <hr />
            </ul>
        </body>
    </html>
    
    image.png

    • Navigator 导航

    1. window.navigator 对象包含有关访问者浏览器的信息;
    2. window.navigator 对象在编写时可不使用 window 这个前缀
    3. 来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本
      navigator 数据可被浏览器使用者更改;
      浏览器无法报告晚于浏览器发布的新操作系统;
    4. 使用对象来检测浏览器,例:由于只有 Opera 支持属性 "window.opera",可以据此识别出 Opera
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style type="text/css">
                .code{
                    color: gray;
                    border: 1px solid gainsboro;
                    font-size: 15px;
                }
                pre{
                    margin: 1em 0em 1em -19em;
                    font-family: "楷体";
                }
                .result{
                    color: gray;
                    background-color: ghostwhite;
                    font-size: 16px;
                    padding: 0.5em 1em;
                }
                h3{
                    color: red;
                }
                .result span:first-child{
                    display: block;
                    float: left;
                    width: 10em;
                    color: black;
                }
            </style>
            <script type="text/javascript">
                function objDisplay(eleId,obj){
                    if(typeof(eleId)!="string" || typeof(obj)!="object"){
                        alert("Function objDisplay() need the first parameter string and second object !")
                    }else{
                        var ele = document.getElementById(eleId);
                    
                        if(!ele || !obj){
                            alert("Please check the parameter !")
                        }else{
                            for(i in obj){
                                var div = document.createElement("div");
                                
                                for(var j=0;j<2;j++){
                                    var span = document.createElement("span");
                                    if(j==0) span.innerHTML = i+" : ";
                                    else span.innerHTML = obj[i];
                                    div.appendChild(span);
                                }
                            ele.appendChild(div);
                            }
                        }
                    }               
                }
            </script>
        </head>
        <body>
            <ul>
                <li>
                    <h3>navigator</h3>
                    <h4>代码:</h4>
                    <div class="code">
                        <pre>
                        //navigator属性
                        var navDict = {
                            "appCodeName":window.navigator.appCodeName,
                            "appName":navigator.appName,
                            "appVersion":navigator.appVersion,
                            "cookieEnabled":navigator.cookieEnabled,
                            "platform":navigator.platform,
                            "userAgent":navigator.userAgent,
                            "systemLanguage":navigator.systemLanguage,
                        }
                        
                        objDisplay("navDict",navDict);
                        </pre>
                    </div>              
                    <h4>结果:</h4>
                    <div id="navDict" class="result"></div>
                    <hr />
                    <script>
                        //navigator属性
                        var navDict = {
                            "appCodeName":window.navigator.appCodeName,
                            "appName":navigator.appName,
                            "appVersion":navigator.appVersion,
                            "cookieEnabled":navigator.cookieEnabled,
                            "platform":navigator.platform,
                            "userAgent":navigator.userAgent,
                            "systemLanguage":navigator.systemLanguage,
                        }
                        
                        objDisplay("navDict",navDict);
                    </script>
                </li>               
            </ul>       
        </body>
    </html>
    
    image.png

    • PopupAlert 消息框

    1. JavaScript中消息框有三种:警告框,确认框,提示框;
    2. 警告框alert(),警告框携带信息弹出,需点击"确认"按钮后,才能继续进行下一步操作;
    3. 确认框confirm(),确认框携带信息弹出,点击"确认"按钮后返回true,点击"取消"按钮后返回false
    4. 提示框prompt(),提示框携带信息弹出,且要求用户输入内容,若未输入或点击"取消"按钮,则返回null,若输入且点击"确定"按钮,则返回输入值
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                .code{
                    color: gray;
                    border: 1px solid gainsboro;
                    font-size: 15px;
                }
                pre{
                    margin: 1em 0em 1em -19em;
                    font-family: "楷体";
                }
                .result{
                    color: gray;
                    background-color: ghostwhite;
                    font-size: 16px;
                }
                ul li h3{
                    color: red;
                }
                button{
                    background-color: blueviolet;
                    color: white;
                    border: 2px solid plum;
                    border-radius: 2em;
                    padding: 0.5em;
                    margin: 0.5em;
                }
                button:focus{
                    color: bisque;
                }
            </style>
        </head>
        <body>
            <ul>
                <li>
                    <h3>PopupAlert</h3>
                    <h4>代码:</h4>
                    <div class="code">
                        <pre>
                        &lt;button name="alert" onclick="alert('Hello World !')"&gt;Alert&lt;/button&gt;
                        &lt;button name="confirm" onclick="confirmResult()"&gt;Confirm&lt;/button&gt;
                        &lt;button name="prompt" onclick="promptResult()"&gt;Prompt&lt;/button&gt;
                        </pre>
                    </div>
                    <h4>结果:</h4>
                    <div class="result">
                        <button name="alert" onclick="alert('Hello World !')">Alert</button>
                        <button name="confirm" onclick="confirmResult()">Confirm</button>
                        <button name="prompt" onclick="promptResult()">Prompt</button>
                    </div>
                    <div class="result">
                        <p id="confirmRes">显示Confirm按钮点击后的结果!</p>
                        <p id="promptRes">显示Prompt按钮点击后输入的结果!</p>
                    </div>
                </li>
                <hr />
                <script>
                    function confirmResult(){
                        var result = confirm("Continue ?");
                        document.getElementById("confirmRes").innerHTML = result;
                    }
                    function promptResult(){
                        var result = prompt("Please input the infomation !");
                        document.getElementById("promptRes").innerHTML = result;
                    }
                </script>
            </ul>
        </body>
    </html>
    
    test27.gif

    • timing 计时

    1. setTimeout(),定时任务,在多长时间后,执行一次,只执行一次;
    2. clearTimeout(),清除定时任务.
    3. setInterval(),重复任务,每隔多长时间,就执行一次,重复执行;
    4. clearInterval(),清除重复任务.
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                .code {
                    color: gray;
                    border: 1px solid gainsboro;
                    font-size: 15px;
                }
                
                pre {
                    margin: 1em 0em 1em -19em;
                    font-family: "楷体";
                }
                
                .result {
                    color: gray;
                    background-color: ghostwhite;
                    font-size: 16px;
                }
                
                ul li h3 {
                    color: red;
                }
                
                button {
                    background-color: blueviolet;
                    color: white;
                    border: 2px solid plum;
                    border-radius: 2em;
                    padding: 0.5em;
                    margin: 0.5em;
                }
                
                button:focus {
                    color: bisque;
                }
            </style>
        </head>
    
        <body>
            <ul>
                <li>
                    <h3>timing</h3>
                    <h4>代码:</h4>
                    <div class="code">
                        <pre>
                        //定义全局变量
                        var initDate = "";
                        var nowDateAll = "";
    
                        //时钟
                        function dateDisRef() {
                            var now = new Date(); //定义当前时间
                            var dateAll = "";
                            //定义时间字典
                            var dateDict = {
                                "year": now.getFullYear(),
                                "month": now.getMonth() + 1,
                                "day": now.getDate(),
                                "hours": now.getHours(),
                                "minutes": now.getMinutes(),
                                "seconds": now.getSeconds()
                            }
                            //格式校验,不足十的,在前方补0
                            function checkDate(dateTime, dateDict) {
                                if(dateDict[dateTime] < 10) {
                                    dateDict[dateTime] = "0" + dateDict[dateTime];
                                }
                            }
                            //日期展示
                            for(dateTime in dateDict) {
                                checkDate(dateTime, dateDict);
                                switch(dateTime) {
                                    case "year":
                                    case "month":
                                        dateAll += (dateDict[dateTime] + "-");
                                        break;
                                    case "hours":
                                    case "minutes":
                                        dateAll += (dateDict[dateTime] + ":");
                                        break;
                                    case "day":
                                        dateAll += (dateDict[dateTime] + " ");
                                        break;
                                    case "seconds":
                                        dateAll += dateDict[dateTime];
                                    default:
                                        break;
                                }
                            }
                            document.getElementById("dateDis").innerHTML = dateAll;
                            nowDateAll = dateAll;
                            //只设置一次
                            if(initDate == "") {
                                //替换第一个空格为T,用来设置日历默认时间
                                initDate = dateAll.replace(" ", "T");
                            }
                            //定时任务,等待500ms,执行dateDisRef()方法,调用后再次等待500ms,再会进行下次调用,故刷新频率为1s
                            var timeOut = setTimeout('dateDisRef()', 500);
                        }
                        //调用方法
                        dateDisRef();
    
                        //设置日历默认时间为当前时间
                        document.getElementById("initDate").value = initDate;
    
                        //倒计时
                        var interval;
    
                        function timing() {
                            //获得日历时间,并进行格式转换
                            var calendarTime = document.getElementById("initDate").value.toString();
                            //进行同时区时间设置(防止时差问题,导致时间差错误),均设置为标准时区
                            var calendarDate = new Date(calendarTime + "Z");
                            //动态获取当前时间
                            var nowDate = new Date(nowDateAll + "Z");
                            //将时间差转化为s
                            var dateMius = (calendarDate - nowDate) / 1000;
                            //清除重复任务,防止生成多个
                            clearInterval(interval);
                            //定义重复任务,时间间隔1s
                            interval = setInterval(function() {
                                dateMius--;
                                var timingEle = document.getElementById("timing");
                                if(dateMius == 0) {
                                    timingEle.innerHTML = "倒计时结束!";
                                    timingEle.style.color = "red";
                                    clearInterval(interval);
                                } else {
                                    if(timingEle.style.color == "red") timingEle.style.color = "gray";
                                    timingEle.innerHTML = dateMius + " S";
                                }
                            }, 1000);
                        }
                        </pre>
                    </div>
                    <h4>结果:</h4>
                    <div class="result">
                        <p id="dateDis"></p>
                    </div>
                    <div class="result">
                        <input type="datetime-local" id="initDate" onchange="timing()" />
                        <p id="timing"></p>
                    </div>
                    <script>
                        //定义全局变量
                        var initDate = "";
                        var nowDateAll = "";
    
                        //时钟
                        function dateDisRef() {
                            var now = new Date(); //定义当前时间
                            var dateAll = "";
                            //定义时间字典
                            var dateDict = {
                                "year": now.getFullYear(),
                                "month": now.getMonth() + 1,
                                "day": now.getDate(),
                                "hours": now.getHours(),
                                "minutes": now.getMinutes(),
                                "seconds": now.getSeconds()
                            }
                            //格式校验,不足十的,在前方补0
                            function checkDate(dateTime, dateDict) {
                                if(dateDict[dateTime] < 10) {
                                    dateDict[dateTime] = "0" + dateDict[dateTime];
                                }
                            }
                            //日期展示
                            for(dateTime in dateDict) {
                                checkDate(dateTime, dateDict);
                                switch(dateTime) {
                                    case "year":
                                    case "month":
                                        dateAll += (dateDict[dateTime] + "-");
                                        break;
                                    case "hours":
                                    case "minutes":
                                        dateAll += (dateDict[dateTime] + ":");
                                        break;
                                    case "day":
                                        dateAll += (dateDict[dateTime] + " ");
                                        break;
                                    case "seconds":
                                        dateAll += dateDict[dateTime];
                                    default:
                                        break;
                                }
                            }
                            document.getElementById("dateDis").innerHTML = dateAll;
                            nowDateAll = dateAll;
                            //只设置一次
                            if(initDate == "") {
                                //替换第一个空格为T,用来设置日历默认时间
                                initDate = dateAll.replace(" ", "T");
                            }
                            //定时任务,等待500ms,执行dateDisRef()方法,调用后再次等待500ms,再会进行下次调用,故刷新频率为1s
                            var timeOut = setTimeout('dateDisRef()', 500);
                        }
                        //调用方法
                        dateDisRef();
    
                        //设置日历默认时间为当前时间
                        document.getElementById("initDate").value = initDate;
    
                        //倒计时
                        var interval;
    
                        function timing() {
                            //获得日历时间,并进行格式转换
                            var calendarTime = document.getElementById("initDate").value.toString();
                            //进行同时区时间设置(防止时差问题,导致时间差错误),均设置为标准时区
                            var calendarDate = new Date(calendarTime + "Z");
                            //动态获取当前时间
                            var nowDate = new Date(nowDateAll + "Z");
                            //将时间差转化为s
                            var dateMius = (calendarDate - nowDate) / 1000;
                            //清除重复任务,防止生成多个
                            clearInterval(interval);
                            //定义重复任务,时间间隔1s
                            interval = setInterval(function() {
                                dateMius--;
                                var timingEle = document.getElementById("timing");
                                if(dateMius == 0) {
                                    timingEle.innerHTML = "倒计时结束!";
                                    timingEle.style.color = "red";
                                    clearInterval(interval);
                                } else {
                                    if(timingEle.style.color == "red") timingEle.style.color = "gray";
                                    timingEle.innerHTML = dateMius + " S";
                                }
                            }, 1000);
                        }
                    </script>
                </li>
                <hr />
            </ul>
        </body>
    
    </html>
    
    image.png
    test28.gif

    • cookie

    1. cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie
    2. 名字 cookie
      当访问者首次访问页面时,他或她也许会填写他/她们的名字。名字会存储于 cookie 中。当访问者再次访问网站时,他们会收到类似 "Welcome John Doe!" 的欢迎词。而名字则是从 cookie 中取回的。
      密码 cookie
      当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。当他们再次访问网站时,密码就会从 cookie 中取回。
      日期 cookie
      当访问者首次访问你的网站时,当前的日期可存储于 cookie 中。当他们再次访问网站时,他们会收到类似这样的一条消息:"Your last visit was on Tuesday August 11, 2005!"。日期也是从 cookie 中取回的。
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body onload="checkCookie()">
            <script>
                //设置cookie
                function setCookies(name,value,expiredays){
                    var exdate = new Date();
                    //设置失效日期
                    exdate.setDate(exdate.getDate()+expiredays);
                    //设置cookie格式 name=value;expires=exdate
                    //escape()用来编码字符串 toGMTString()此日期会在转换为字符串之前由本地时区转换为 GMT时区
                    document.cookie=name+"="+escape(value)+((expiredays==null)?"":(";expires="+exdate.toGMTString()));
                }
                
                //获取cookie
                function getCookies(name){
                    //判断cookie的长度
                    if(document.cookie.length>0){
                        //获取要获取cookie的起始位置
                        start = document.cookie.indexOf(name+"=");
                        //判断indexOf()搜索结果,无结果时为-1
                        if(start!=-1){
                            start = start+name.length+1;//设置起始值为=的位置
                            end = document.cookie.indexOf(";",start);//从起始值搜索到名字的结束
                            if(end==-1) end=document.cookie.length;//无失效日期,则取到尾
                            return unescape(document.cookie.substring(start,end));//解码截取的子字符串
                        }
                    }
                    return "";
                }
                
                //检查是否设置了cookie
                function checkCookie(){
                    usrName = getCookies("usrName");//获取usrCookie
                    //不为空弹出欢迎框
                    if(usrName!=null && usrName!=""){
                        alert("Welcome again "+usrName+" !");
                    }else{
                        //为空则弹出消息框,提示用户输入名字,并设置cookie
                        usrName=prompt("Please enter your name :","");
                        if(usrName!=null&&usrName!=""){
                            setCookies("usrName",usrName,30);
                        }
                    }
                }
            </script>
        </body>
    </html>              
    
    test29.gif

    相关文章

      网友评论

          本文标题:09.JavaScirpt window

          本文链接:https://www.haomeiwen.com/subject/koeynxtx.html