ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptでウィンドウは何を意味しますか

JavaScriptでウィンドウは何を意味しますか

青灯夜游
青灯夜游オリジナル
2022-02-15 18:06:176077ブラウズ

JavaScript では、window は「窓」を意味し、ブラウザ ウィンドウを表す組み込みホスト オブジェクトです。すべてのブラウザがこのオブジェクトをサポートしています。すべての JavaScript グローバル オブジェクト、関数、変数は自動的に window オブジェクトのメンバーになります。

JavaScriptでウィンドウは何を意味しますか

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript では、window は「窓」を意味し、組み込みのホスト オブジェクトです。

ウィンドウ オブジェクトは、BOM 内のすべてのオブジェクトの中心です。BOM 内のすべてのオブジェクトの親オブジェクトであるだけでなく、いくつかのウィンドウ コントロール関数も含まれています。

ホストオブジェクトとは、JSスクリプトを実行する環境が提供するオブジェクトであり、ブラウザが提供するオブジェクトです。すべての BOM と DOM はホスト オブジェクトです。

ウィンドウ オブジェクト

すべてのブラウザはウィンドウ オブジェクトをサポートしています。ブラウザウィンドウを表します。

すべての JavaScript グローバル オブジェクト、関数、および変数は、自動的に window オブジェクトのメンバーになります。

  • #グローバル変数は、ウィンドウ オブジェクトのプロパティです。

  • #グローバル関数は、ウィンドウ オブジェクトのメソッドです。
  • HTML DOM のドキュメントもウィンドウ オブジェクトの属性の 1 つです:
window.document.getElementById("header");

これと同じ:

document.getElementById("header");

1。 window object

JavaScript のグローバル関数または変数はすべて window のプロパティです。

8019067d09615e43c7904885b5246f0a
    var name="撼地神牛";
    document.write(window.name);
2cacc6d41bbb37262a98f745aa00fbf0

2. Window オブジェクトと self オブジェクト

self オブジェクトは window オブジェクトとまったく同じで、通常、Self は現在の形式であることを確認するために使用されます。

8019067d09615e43c7904885b5246f0a
    document.write(window == self);      //必须相等,永远都相等
  document.write(window.Top == window.self);  //判断当前框架是否是主框架
2cacc6d41bbb37262a98f745aa00fbf0

Window、self、window.self は同等です。

3. window のサブオブジェクト

window のメイン オブジェクトには主に次のものが含まれます:

    JavaScript ドキュメント オブジェクト
  • JavaScript フレーム オブジェクト
  • ##JavaScript 履歴オブジェクト
  • JavaScript 位置オブジェクト

  • JavaScript ナビゲーター オブジェクト

  • JavaScript 画面オブジェクト

  • 4. ウィンドウ関数インデックス (IE のみ有効)

    フォーム コントロール関数:

JavaScript moveBy() 関数: 現在の位置からフォームを水平方向に x ピクセル、垂直方向に y ピクセル移動します。x が負の数の場合、フォームは左に移動します。 . 負の y を指定すると、フォームが上に移動します。

  • JavaScript moveTo() 関数: フォームの左上隅を画面の左上隅を基準とした (x, y) 点に移動します。負の数が使用された場合パラメータとして、フォームが画面の表示領域の外に移動されます。

  • JavaScript のresizeBy() 関数: フォームの現在のサイズに応じて、幅を w ピクセル単位、高さを h ピクセル単位で調整します。パラメータが負の場合はフォームが縮小され、それ以外の場合は拡大されます。

  • JavaScript のsizeTo() 関数: フォームの幅を w ピクセルに、高さを h ピクセルに調整します。

6c04bd5ca3fcae76e30b72ad730ca86d
    02edad1963adfa90e6b10bbd1f9ab79e
    5eac04ea1d548c5f0f87be4062c2c1b3
    906cd9b2775cac4cefd84b7f6ad07ce0
    9da8ebe7e9ca720a9ab0536518e2c435
    8006252de7d5c35b6d2bd9a854a60b7b
    c2abf7906f931633019d565144f979a3
    cb248f94d1d1b27db7360dfcb5344a36
36cc49f0c466276486e50c850b7e4956
  • フォームのスクロール軸制御関数:

  • JavaScriptscrollTo() 関数: フォーム内にスクロールバーがある場合、スクロールします。水平方向 バーはフォームの幅に対して x ピクセルの位置に移動し、垂直スクロール バーはフォームの高さに対して y ピクセルの位置に移動します。

    • JavaScript のscrollBy() 関数: スクロール バーがある場合、水平スクロール バーを現在の水平スクロール バーに対して x ピクセルの位置に移動します (つまり、x ピクセル移動します)。左へ)、垂直スクロール バーを現在の垂直スクロール バーの高さに対して y ピクセルの位置に移動します (つまり、y ピクセル下に移動します)。

    • 違いに注意してください。1 つは現在のウィンドウを基準にしており、もう 1 つはスクロール バーの現在位置を基準としています。

      <div style="height:150%; width:150%; background-color:#ddd">
          <input type="button" id="btn1" value="移动滚动条!" onclick="window.scrollTo(100,100);" />  //相当于设置绝对位置
          <input type="button" id="btn1" value="移动滚动条!" onclick="window.scrollBy(100,100);" />  //相当于累加
      </div>

      フォーム フォーカス制御関数:

    JavaScript focus() 関数: フォームまたはスペースにフォーカスを取得します

    • JavaScript Blur() 関数: フォームまたはコントロールのフォーカスを失う

    • <div>
          <input type="button" value="获得焦点" onclick="document.getElementById(&#39;testInput&#39;).focus()" />
          <input type="button" value="失去焦点" onclick="document.getElementById(&#39;testInput&#39;).blur()" />
          <input type="text" value="text" id="testInput" onblur="alert(&#39;我已失去焦点&#39;)" />
      </div>
    • 新しいフォーム関数:

    • JavaScript open() 関数: 開く (ポップアップ)新しい form

    JavaScript close() 関数: フォームを閉じる

      JavaScript opener 属性: クロスフォーム間の通信は opener を通じて実現できますが、同じドメイン名の下にある必要があります。あるフォームには別のフォームのオープナーが含まれている必要があります。
    • window.open(url, name, features, replace);
    • Open 関数パラメータの説明:

    url -- フォーム URL をロードします;

    name -- 新しいフォームの名前 (HTML ターゲット属性 target の値でも可);

      features -- フォームの機能を表す文字列、文字列それぞれ属性 in はカンマで区切られます;
    • replace -- 新しくロードされたページが現在ロードされているページを置き換えるかどうかを示すブール値。通常、このパラメータは指定されません。
    • Open メソッドの例:
    •   <a href="2.html" target="2">在新窗口打开连接</a>
        <a href="#" onclick="window.open(&#39;http://www.google.com&#39;,&#39;2&#39;);">在已建立连接的页面打开新地址</a>
    • 最初に通常の HTML リンクを使用してページ (dreamdu という名前のターゲット) を開き、次に open 関数を使用して別のページを開きます。 dreamdu という名前のフォームがあるかどうかを確認する必要があります。存在する場合は、このフォームにオープン アドレスをロードします。
    set open

    window.open (&#39;page.html&#39;, &#39;newwindow&#39;, &#39;height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no&#39;)

    ポップアップ ウィンドウ メソッド:

    方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口;  
    方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口;

    open 関数の 3 番目のパラメーターの機能の説明:

    #パラメータ名タイプ説明高さ数値フォームの高さを設定します。100 未満にすることはできません。leftNumber作成したフォームの左座標を記述します。 form (負の値は指定できません) ValuelocationBooleanフォームにアドレス バーが表示されるかどうか、デフォルト値は no## resizable##scrollableBooleanフォームの内部がウィンドウの表示範囲を超える場合にドラッグを許可するかどうか。デフォルト値は notoolbar です。 Boolean フォームにツールバーを表示するかどうか。デフォルト値は noです。topNumber作成されたフォームの上部座標。負の値は指定できませんstatusBooleanフォームにステータス バーを表示するかどうか、デフォルト値Number
    Boolean フォームの端をドラッグしてサイズ変更できるかどうか、デフォルト値は no
    ##width
    作成されたフォームの幅は 100 未満にはできません

      特性字符串中的每个特性使用逗号分隔,每个特性之间不允许有空格。

      window.open函数新建立窗体后会返回新建窗体的window对象,通过此对象可以控制窗体(移动,改变大小,关闭)。

      close函数:

    <input type="button" value="关闭已经打开的窗体!" onclick="window.close();" />

      self.close();配合上setTimeout()可以实现,打开的窗口定时关闭的效果。

      对话框函数:

    • JavaScript alert() 函数:弹出消息对话框(对话框中有一个OK按钮)

    • JavaScript confirm() 函数:弹出消息对话框(对话框中包含一个OK按钮与Cancel按钮)

    • JavaScript prompt() 函数:弹出消息对话框(对话框中包含一个OK按钮、Cancel按钮与一个文本输入框)

      alert();

      不说。

      confirm(str);

      confirm()消息对话框是排它的,也就是在用户点击对话框的按钮前,不能进行任何其它操作。

    if(confirm("确定跳大?"))
    {
        alert("果断跳大");
    }else{
        alert("猥琐打钱");
    }

      显示如下:

        

      prompt(str1, str2);

      函数有两个参数

    • str1 -- 要显示在消息对话框中的文本,不可修改
    • str2 -- 文本框中的内容,可以修改
    var sResult=prompt("请在下面输入你的姓名", "撼地神牛");if(sResult!=null)
    {
        alert(sResult + "已经超越神的杀戮");
    }else{
        alert("无名氏已经超越神的杀戮");
    }

      显示如下:

      

      时间等待与间隔函数:

    • JavaScript setTimeout() 函数
    • JavaScript clearTimeout() 函数
    • JavaScript setInterval() 函数
    • JavaScript clearInterval() 函数

      1、setTimeout()、clearTimeout()  在指定的时间后调用函数

      语法:

    • setTimeout(fun,time);  fun:函数体或函数名,time指定时间,单位为毫秒。
    • clearTimeout(id);  取消指定的setTimeout函数将要执行的代码
        setTimeout(function () {
            document.write("隔3秒后触发");   
        }, 3000)    //在3秒后输出
        setTimeout(fun1, 5000);     //在5秒后输出
        function fun1() {
            document.write("函数名的方式5秒后触发");
        }

      2、setInterval()、clearInterval(value)  在间隔指定的事件后重复调用函数

      语法:

    • setInterval(fun1,time)  fun:函数体或函数名,time指定的时间,单位为毫秒。会返回一个值,这个值是统计该函数的个数用的,第一个是1,第二个就是2,指明是第几个setInterval函数。
    • clearInterval(value)    value:setInterval()函数返回的值,根据这个值可以停止setInterval()的重复。 
    var i = 0;var h = setInterval(function () {
        document.write("3秒输出一次<br/>");
        i++;    if (i >= 3) {
           clearInterval(h);
            document.write("停止输出");
        }
    }, 3000);

      注意,javascript是单线程的,因此,这个定时函数实际上是通过插入执行队列的方式来实现。

      如下面的代码:

    function fn() { 
      setTimeout(function(){alert(&#39;can you see me?&#39;);},1000); 
      while(true) {} 
    }

      alert();永远都不会执行,因为线程一直被死循环占用了。

    window.location子对象 

      解析URL对象location

      location对象的属性有:href,protocal,host,hostname,port,pathname,search,hash

            document.write(location.href + "<br/>");        // http://localhost:4889/javascriptTest.html
            document.write(location.protocol + "<br/>");    // http:
            document.write(location.host + "<br/>");        // localhost:4889
            document.write(location.hostname + "<br/>");    // localhost
            document.write(location.port + "<br/>");        // 4889
            document.write(location.pathname + "<br/>");    // /javascriptTest.html
            document.write(location.search + "换行<br/>");  //http://localhost:4889/javascriptTest.html?id=1&name=张三 如果路径是这样,则输出  ?id=1&name=%E5%BC%A0%E4%B8%89
            document.write(location.hash);                  //http: //localhost:4889/javascriptTest.html#kk=你好?id=1&name=张三 如果路径是这样,则输出  #kk=你好?id=1&name=张三

      载入新文档

        location.reload()  重新加载页面

        location.replace()  本窗口载入新文档

        location.assign()   本窗口载入新文档

        location = "http://www.baidu.com"  //跳转到指定网址

        location = "search.html"        //相对路径跳转

        location = "#top"      //跳转到页面顶部

      浏览历史

        History()对象的back()与forward()  与浏览器的“后退”,"前进"功能一样。

        history.go(-2);  后退两个历史记录

      浏览器和屏幕信息

        navigator.appName  Web浏览器全称

        navigator.appVersion  Web浏览器厂商和版本的详细字符串

        navigator.userAgent  客户端绝大部分信息

        navagator.platform   浏览器运行所在的操作系统

            document.write(navigator.userAgent + "<br/>"); // Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
            document.write(navigator.appName + "<br/>");   //Netscape
            document.write(navigator.appVersion + "<br/>"); //5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
            document.write(navigator.platform);             //Win32

    窗口的关系

        parent == self  只有顶级窗口才返回true

         parent和top属性允许脚本引用它的窗体的祖先,通常窗体是通过d5ba1642137c3f32f4f4493ae923989c元素创建的,可以用来获取顶级窗口。 

    5、event事件对象

      最有用的两个操作:阻止事件冒泡。有时return false;不管用,这个或许就管用了。

    //IE:
    window.event.cancelBubble = true;//停止冒泡
    window.event.returnValue = false;//阻止事件的默认行为
    
    //Firefox:
    event.preventDefault();// 取消事件的默认行为  
    event.stopPropagation(); // 阻止事件的传播

    【相关推荐:javascript学习教程

    以上がJavaScriptでウィンドウは何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。