zoukankan      html  css  js  c++  java
  • Web开发技术——Javascript Window BOM

    JavaScript Window - 浏览器对象模型

    浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”。

    浏览器对象模型 (BOM)

    浏览器对象模型(Browser Object Model)尚无正式标准。

    由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。

    Window 对象

    所有浏览器都支持 window 对象。它表示浏览器窗口。

    所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

    全局变量是 window 对象的属性。

    全局函数是 window 对象的方法。

    甚至 HTML DOM 的 document 也是 window 对象的属性之一:

    window.document.getElementById("header");

    与此相同:

    document.getElementById("header");

    Window 尺寸

    有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)。

    对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:

    · window.innerHeight - 浏览器窗口的内部高度

    · window.innerWidth - 浏览器窗口的内部宽度

    对于 Internet Explorer 8、7、6、5:

    · document.documentElement.clientHeight

    · document.documentElement.clientWidth

    或者

    · document.body.clientHeight

    · document.body.clientWidth

    实用的 JavaScript 方案(涵盖所有浏览器):

    实例
    var w=window.innerWidth
    || document.documentElement.clientWidth
    || document.body.clientWidth;
     
    var h=window.innerHeight
    || document.documentElement.clientHeight
    || document.body.clientHeight;

    该例显示浏览器窗口的高度和宽度:(不包括工具栏/滚动条)

    其他 Window 方法

    一些其他方法:

    · window.open() - 打开新窗口

    · window.close() - 关闭当前窗口

    · window.moveTo() - 移动当前窗口

    · window.resizeTo() - 调整当前窗口的尺寸

    JavaScript Window Screen

    window.screen 对象包含有关用户屏幕的信息。

    Window Screen

    window.screen 对象在编写时可以不使用 window 这个前缀。

    一些属性:

    · screen.availWidth - 可用的屏幕宽度

    · screen.availHeight - 可用的屏幕高度

    Window Screen 可用宽度

    screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。

    实例

    返回您的屏幕的可用宽度:

    <script>
     
    document.write("可用宽度:" + screen.availWidth);
     
    </script>

    以上代码输出为:

    可用宽度:1366

    亲自试一试

    Window Screen 可用高度

    screen.availHeight 属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏。

    实例

    返回您的屏幕的可用高度:

    <script>
     
    document.write("可用高度:" + screen.availHeight);
     
    </script>

    以上代码输出为:

    可用高度:728

    JavaScript Window Location

    · JS Screen

    · JS History

    window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

    Window Location

    window.location 对象在编写时可不使用 window 这个前缀。

    一些例子:

    · location.hostname 返回 web 主机的域名

    · location.pathname 返回当前页面的路径和文件名

    · location.port 返回 web 主机的端口 (80 或 443)

    · location.protocol 返回所使用的 web 协议(http:// 或 https://)

    Window Location Href

    location.href 属性返回当前页面的 URL。

    实例

    返回(当前页面的)整个 URL:

    <script>
     
    document.write(location.href);
     
    </script>

    以上代码输出为:

    http://www.w3school.com.cn/js/js_window_location.asp

    Window Location Pathname

    location.pathname 属性返回 URL 的路径名。

    实例

    返回当前 URL 的路径名:

    <script>
     
    document.write(location.pathname);
     
    </script>

    以上代码输出为:

    /js/js_window_location.asp

    Window Location Assign

    location.assign() 方法加载新的文档。

    实例

    加载一个新的文档:

    <html>
        <head>
            <script>function newDoc()  {  window.location.assign("http://www.w3school.com.cn")  }</script>
        </head>
    <body> 
        <input type="button" value="加载新文档" onclick="newDoc()">
     </body>
    </html>

    JavaScript Window History

    · JS Location

    · JS Navigator

    window.history 对象包含浏览器的历史。

    Window History

    window.history 对象在编写时可不使用 window 这个前缀。

    为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。

    一些方法:

    · history.back() - 与在浏览器点击后退按钮相同

    · history.forward() - 与在浏览器中点击按钮向前相同

    Window History Back

    history.back() 方法加载历史列表中的前一个 URL。

    这与在浏览器中点击后退按钮是相同的:

    实例

    在页面上创建后退按钮:

    <html>
    <head>
        <script>function goBack()  {  window.history.back()  }</script>
    </head>
    <body>
         <input type="button" value="Back" onclick="goBack()">
     </body>
    </html>

    以上代码输出为:

    Window History Forward

    history forward() 方法加载历史列表中的下一个 URL。

    这与在浏览器中点击前进按钮是相同的:

    实例

    在页面上创建一个向前的按钮:

    <html>
        <head><script>function goForward()  {  window.history.forward()  }</script></head>
        <body> <input type="button" value="Forward" onclick="goForward()"> </body>
    </html>

    以上代码输出为:

    4 JavaScript Window Navigator

    · JS History

    · JS PopupAlert

    window.navigator 对象包含有关访问者浏览器的信息。

    Window Navigator

    window.navigator 对象在编写时可不使用 window 这个前缀。

    实例
    <div id="example"></div>
     
    <script>
     
    txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
    txt+= "<p>Browser Name: " + navigator.appName + "</p>";
    txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
    txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
    txt+= "<p>Platform: " + navigator.platform + "</p>";
    txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";
    txt+= "<p>User-agent language: " + navigator.systemLanguage + "</p>";
     
    document.getElementById("example").innerHTML=txt;
     
    </script>

    警告:来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:

    · navigator 数据可被浏览器使用者更改

    · 浏览器无法报告晚于浏览器发布的新操作系统

    浏览器检测

    由于 navigator 可误导浏览器检测,使用对象检测可用来嗅探不同的浏览器。

    由于不同的浏览器支持不同的对象,您可以使用对象来检测浏览器。例如,由于只有 Opera 支持属性 "window.opera",您可以据此识别出 Opera。

    例子:if (window.opera) {...some action...}

  • 相关阅读:
    【J2me3D系列学习文章之一】J2me3D开发技术和基础知识
    使用NSOperation实现异步下载
    如何在iphone应用程序中发送短信
    【J2me3D系列学习文章之二】(立即模式)构造我们3D世界中的第一个立方体!
    下拉列表框实现
    Android开发:在EditText中关闭软键盘
    ContentLength为-1导致下载文件字节数为0错误
    前端要给力之:代码可以有多烂?
    NSOperation与performSelectorOnMainThread
    WebService 接口调用指南
  • 原文地址:https://www.cnblogs.com/cmhunter/p/4178657.html
Copyright © 2011-2022 走看看