【JavaScript高级程序设计】13、BOM对象(1)

使用window.open()方法既可以导航到一个特定的URL,也可以打开一个新的浏览器窗口。这个方法可以接受4个参数:要加载的URL、窗口目标、一个特性字符串以及一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值。

第二个参数表是否创建新的窗口

 

对弹出窗口的屏蔽

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>

  <script type="text/javascript">
    
        //弹出一个新的窗口
        var blocked = false;
                
        try 
        {
            var wroxWin = window.open("http://www.baidu.com", "_blank");
            if (wroxWin == null)
            {
                blocked = true;
            }
        } 
        catch (ex)
        {
            locked = true;
        }

        if (blocked)
        {
            alert("The popup was blocked!");
        }

    </script>
 </head>
 <body>
  
 </body>
</html>

结果:

 

 

间歇调用和超时调用

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>

  <script type="text/javascript">

        var timeoutId1 = setTimeout(function() 
                                   { 
                                        alert("Hello world!"); 
                                    }, 1000);
                    
                    
        var timeoutId2 = setTimeout(function()
                   {
                       alert("this is second!!");
                   }, 2000);
                   
                   
        //上面两个可以通过一个函数来取消我们的定时程序
        clearTimeout(timeoutId1);    //等会直接显示第二个

        var num = 1;
        var intervalId = null;
        //还有间歇调用,就是间断地重复调用,没间隔1秒一次
        intervalId = setInterval(function()
                    {
                        alert("this is:" + num++);
                        if(num == 3)
                        {
                            //也可以取消
                            clearInterval(intervalId);
                            alert("done");
                        }
                    }, 1000);

    </script>
 </head>
 <body>
  
 </body>
</html>

显示结果:

 

 这里注意:当浏览器弹出系统对话框的时候代码会停止执行

 

 location对象

 

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>


  <script type="text/javascript">
    
    function getQueryStringArgs()
    {
            
        //因为search是查到url的查询字段,而url中的查询字段开始都是?开始
        var qs = (location.search.length > 0 ? location.search.substring(1) : ""),
        
        //存放所有的数据参数
        args = {},

        //获取所有的数据
        items = qs.length ? qs.split("&") : [],
        item = null,
        name = null,
        value = null,
        i = 0,
        len = items.length;
        
        //循环解析类似q=javascript   num=10
        for (i=0; i < len; i++)
        {
            item = items[i].split("=");
            //解析url中的特殊字符,比如空格。。。
            name = decodeURIComponent(item[0]);
            value = decodeURIComponent(item[1]);
            if (name.length)
            {
                args[name] = value;
            }
        }
        
        return args;
    }    
    
    var args = getQueryStringArgs();
    // ?q=javascript&num=10
    alert(args["q"]);     //"javascript"
    alert(args["num"]);   //"10"
    
    //立马跳转到其他页面
    location.assign("file:///F:/JavaScript/学习JavaScript/javascript高级程序设计/样例/Ch08/LocationExample01.htm");    
    //类似功能,没事修改location都会从新加载url
    location.href="file:///F:/JavaScript/学习JavaScript/javascript高级程序设计/样例/Ch08/LocationExample01.htm?q=javascript&num=10";
    
  </script>
 </head>
 <body>
  
 </body>
</html>

结果:

 

posted @ 2016-07-25 22:57  cutter_point  阅读(127)  评论(0)    收藏  举报