• javascript中window对象


    window是javascript的一个非常重要的核心对象。对于可以打开多个页面的浏览器(比如IE7等以上版本,或是FireFox,Opera……)window只针对当前的客户端窗体有效。下面介绍以下window的一些重要属性以及应用:

    【屏蔽右键】

    某些网站不允许复制,怎么办呢?办法就是屏蔽鼠标右键。代码可以这样写(注意:event.button属性必须且只能和mouse相关的事件——比如onmouseup/onmousedown/onmouseover使用)。

    <body onmousedown="disableRightClick()">
        <p>
            点击此区域将无法弹出右键
        </p>
    </body>

    脚本:

    function disableRightClick() {
        //右键在IE为2
        if (event.button == 2) {
            alert("禁止使用右键!");

              return false;

        }
    }

    以上方法在IE中有效,Chrome无效(会弹出警告框和右键菜单)。要禁用几乎全部浏览器的鼠标右键,可以使用document.oncontentmenu属性

    <head>
        <title></title>
        <script src="MyJavaScript.js" type="text/javascript"></script>
        <script>
            document.oncontextmenu = function () { alert("禁止右键!"); return false;};
        </script>
    </head>
    <body>
    </body>

    注意:由于oncontentmenu是属性,所以在绑定一个匿名事件的时候必须有返回值(return false)不能省略!

    这里顺便说一声:任何Html标签的onXXX事件可以绑定一个匿名事件,同样也可以绑定一个已定义的js函数。该函数根据实际情况可以选择有或者没有返回值

    【Html文本框只能输入数字】

    对于限制某些内容在文本框内的输入,可以使用window.event.keyCode配合(限于onkeypress/onkeydown/onkeyup)中

    例如以下文本框只允许输入数字:

    <script type="text/javascript">
            function AutoCheck() {
                var code = window.event.keyCode
                if (!(code >= 48 && code <= 57)) {
                    return false;
             }
            }
        </script>

    对应Html:

    <input type="text" id="myText" onkeypress="return AutoCheck(event);" />

    注意input标签中的return不能省略,因为该函数有返回值(如果省略会导致该事件继续执行,因为事件没有被取消)。

    不过当把js语句中的return false改成window.event.returnValue=false;的时候是可以省略input标签中的return的,究其原因是因为event.returnValue赋布尔类型的值会决定该事件是否被执行(具体来说,我个人认为应该是阻止事件结果的产生,并不是取消事件!)。

    进一步证明,现在我写这样的代码:

    <script type="text/javascript">
            function AutoCheck(event) {
                event.returnValue = false;
                alert("OK");
             }
    </script>

    对应Html中:

    <input type="text" id="myText" onkeypress="AutoCheck(event);" />

    注意:当按下任意键的时候,该事件仍然被触发(弹出OK对话框,说明该事件并没有被取消,而是事件导致的结果——本来应该在文本框中输入的内容字符不能被输入了!)
    而如果使用return false取代event.returnValue的话则不仅框不能弹出,而且什么也输入不了(因为return false也会取消事件的结果,并且因为return直接向事件属性返回一个布尔值,最终后继事件代码无法执行;相对而言,event.returnValue只是取消当前事件执行的结果的发生,并不影响后继代码的执行)。

  • 相关阅读:
    atitit.  web组件化原理与设计
    Atitit.git的存储结构and 追踪
    Atitit.git的存储结构and 追踪
    atitit.atiHtmlUi web组件化方案与规范v1
    atitit.atiHtmlUi web组件化方案与规范v1
    Atitit.设计模式-----触发器模式 trigger  详解
    Atitit.设计模式-----触发器模式 trigger  详解
    Atitit.web ui  组件化 vs  mvc
    Atitit.web ui  组件化 vs  mvc
    Atitit..css的体系结构
  • 原文地址:https://www.cnblogs.com/ServiceboyNew/p/2506287.html
Copyright © 2020-2023  润新知