我的网站上有一个关键的侦听器,当我尝试输入某些内容时,我的捷径弹出式打开了,该如何解决此问题



对不起,我是JavaScript的新手,并且真的不知道如何解决此问题。我希望能够使用键盘快捷键,当我输入一些东西时,他们需要忽略。

预先感谢您!

javaScript:

    window.onload = function() {
    var menu = document.getElementById("menu");
    var menubtn = document.getElementById("menubtn");
    var smclose = document.getElementById("smclose");
    var bigclose = document.getElementById("bigclose");
    var strips = document.getElementsByClassName("menustrip");
    var profile = document.getElementById("profile");
    var loginbtn = document.getElementById("loginbtn");
    var popup = document.getElementById("popup-box");
    var inputs = document.getElementsByTagName("input");
    var typing = false;
    smclose.onclick = function() {
        menu.style.display = "none";
    }
    bigclose.onclick = function() {
        popup.style.display = "none";
    }
    menubtn.onclick = function() {
        menu.style.display = "block";
    }
    loginbtn.onclick = function() {
        popup.style.display = "block";
    }
    //I tried this but didn't work
    window.onclick = function(event) {
        for (var y = 0; y < inputs.length; y++) {
            if (event.target == popup) {
                popup.style.display = "none";
            } else if (event.target == inputs[y]) {
                typing = true;
            } else if (event.target != menu) {
                menu.style.display = "none";
                for (var x = 0; x < strips.length; x++) {
                    if (event.target == menu || event.target == menubtn
                            || event.target == strips[x]
                            || event.target == profile) {
                        menu.style.display = "block";
                    }
                }
            } else {
                typing = false;
            }
        }
    }
    //this is handling the shortcuts
    document.addEventListener('keydown', function(event) {
        if (typing == false) {
            if (event.keyCode == 83) {
                menu.style.display = "block";
            } else if (event.keyCode == 76) {
                popup.style.display = "block";
            } else if (event.keyCode == 67) {
                menu.style.display = "none";
                popup.style.display = "none";
            } else if (event.keyCode == 82) {
                window.location.reload();
            }
        }
    });
}

html:

<!-- html page-->
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
    <!-- In here I set link my css and javascript files to this & give the device width & height -->
    <link href="{% static 'css/fonts.css' %}" rel="stylesheet" type="text/css">
    <link href="https://fonts.googleapis.com/css?family=Pathway+Gothic+One|Space+Mono" rel="stylesheet"> 
    <script type="text/javascript" src="{% static 'js/dascript.js' %}"></script>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height">
    <title>{% block title %}{% endblock %}</title>
</head>
<body class="container">
    <div id="menu" class="container">
        <div id="smclose">
            <div class="crosssmall left"></div>
            <div class="crosssmall right"></div>
        </div>
        <div id="profile" class="container">
            <div class="circle">
                <img src="https://previews.123rf.com/images/glebstock/glebstock1405/glebstock140501332/29470355-male-silhouette-Unknown-person-concept-Stock-Photo.jpg" class="circle"/>
            </div>
        </div>
        <div class="container">
            <div id="loginbtn" class="menubtns">Login</div>
            <div id="costumize" class="menubtns">Edit</div>
            <div id="settings" class="menubtns">Settings</div>
        </div>
    </div>
    <div class="container flexcolumn">
        <header class="container">
            <nav class="site">  
                <div class="navibar"><a href="{% url 'polls:home' %}">{% block navitem1 %}{% endblock %}</a></div>
                <div class="navibar"><a href=#>{% block navitem2 %}{% endblock %}</a></div>
                <div class="navibar"><a href=#>{% block navitem3 %}{% endblock %}</a></div>
                <div class="navibar"><a href=#>{% block navitem4 %}{% endblock %}</a></div> 
                <div id="menubtn">
                        <div class="menustrip"></div>
                        <div class="menustrip"></div>
                        <div class="menustrip"></div>
                </div>
            </nav>
        </header>
        <div id="whiteblack" class="flexitem">
                <p>{% block content %}{% endblock %}</p>
        </div>
        <footer class="container">
            <div class="container row">
                <i id="ione" class="icon">t</i>
                <i id="itwo" class="icon">a</i>
                <i id="ithree" class="icon">f</i>
                <i id="ifour" class="icon">p</i>
                <i id="ifive" class="icon">e</i>
                <i id="isix" class="icon">y</i>
                <i id="iseven" class="icon">z</i>
            </div>
        </footer>
    </div>
    <div id="popup-box" class="popup">
        <div class="popup-content">
            <div class="popup-header">
                <div id="bigclose">
                    <div class="crossbig left"></div>
                    <div class="crossbig right"></div>
                </div>
                {% block pop-head %}{% endblock %}
            </div>
            <div class="popup-body">
                {% block pop-body %}{% endblock %}
            </div>
            <div class="popup-footer">
                {% block pop-footer %}{% endblock %}            
            </div>
        </div>
    </div>
</body>
</html>

您是否尝试过鼠标陷阱

请参阅以下链接

一个简单的库,用于处理JavaScript中的键盘快捷键。

最新更新