【问题标题】:Script stops working when I insert into another script当我插入另一个脚本时脚本停止工作
【发布时间】:2017-07-03 21:15:39
【问题描述】:

我现在遇到一个问题,因为我不明白为什么它不起作用。我在一个可以工作的文件中制作了一个脚本,但是当我将它复制/粘贴到我希望它工作的文件中时,它不起作用。 这是我刚刚制作的脚本:

<html>
<body>
<p id="myElement"></p>
    <script>
        if (window.location.hash == "#hello") {
            document.getElementById("myElement").innerHTML = 'Vi har Hello';
        } else {
            document.getElementById("myElement").innerHTML = '';
        }
    </script>
</body>
</html>

在这里它可以工作,但是当我将它插入到文件中时,它就不能工作了。这里是:

<html>
<head>
    <title>...</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <link href="layout/styles/layout.css" rel="stylesheet" type="text/css" media="all">
    <link rel="shortcut icon" href="images/favicon.ico">
</head>
<body id="top">
    <div id="forside"></div>
    <div class="bgded overlay" style="background-image:url('images/stor_1.png');"> 
        <div id="pageintro" class="hoc clear">
            <li>
                <p></p><h2>Log ind</h2>
                <p id="myElement"></p>
                <script>
                    if (window.location.hash == "#hello") {
                    document.getElementById("myElement").innerHTML = 'Vi har Hello';
                    } else {
                    document.getElementById("myElement").innerHTML = '';
                    }
                </script>
                <div id="comments">
                    <font color="black">
                        <form action="proces.php" method="post">
                            <input class="form-control" type="text" id="name" size="22" name="username" placeholder="Brugernavn" required><br>
                            <input class="form-control" type="password" id="name" size="22" name="pass" placeholder="Kodeord" required><br> 
                            <input type="submit" name="submit" value="Log Ind!">
                        </form>
                    </font><br>
                    <a href="index.php"><i class="fa fa-chevron-left" aria-hidden="true"> Tilbage til forsiden</i></a>
                </div>
            </li>
        </div>
    </div>
<?php include_once "footer.php"; ?>
<a id="backtotop" href="#top"><i class="fa fa-chevron-up"></i></a>
    <script src="layout/scripts/jquery.min.js"></script>
    <script src="layout/scripts/jquery.mobilemenu.js"></script>
</body>
</html>

我正在插入的脚本的作用是检测#Hello 是否在 URL 中,如果是,它必须显示一些文本...但它不起作用。

有人知道我可能做错了什么吗?

【问题讨论】:

  • 与php无关
  • 然后编辑标签@rtfm
  • @JayBlanchard 我没有那个权力
  • type='' 是script 标签中的必填项吗?
  • 不在 HTML5 中 @rtfm

标签: javascript html


【解决方案1】:

您的代码只会在您的页面文档第一次加载时运行一次,如果您确实想在每次更改时检查哈希,最好放入更改回调。 还请确保您的 jQuery 相对路径是正确的。

$(function() { // ensure you will execute script after document loaded

    $(window).on('hashchange', function() {   // put you code in side change callback.
        if (window.location.hash == "#hello") {
            document.getElementById("myElement").innerHTML = 'Vi har Hello';
        } else {
            document.getElementById("myElement").innerHTML = '';
        }
    });
});

<html>

<head>
    <title>...</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <link href="layout/styles/layout.css" rel="stylesheet" type="text/css" media="all">
    <link rel="shortcut icon" href="images/favicon.ico">
</head>

<body id="top">
    <div id="forside"></div>
    <div class="bgded overlay" style="background-image:url('images/stor_1.png');">
        <div id="pageintro" class="hoc clear">
            <li>
                <p></p>
                <h2>Log ind</h2>
                <p id="myElement"></p>
                <script>
                </script>
                <div id="comments">
                    <font color="black">
                        <form action="proces.php" method="post">
                            <input class="form-control" type="text" id="name" size="22" name="username" placeholder="Brugernavn" required>
                            <br>
                            <input class="form-control" type="password" id="name" size="22" name="pass" placeholder="Kodeord" required>
                            <br>
                            <input type="submit" name="submit" value="Log Ind!">
                        </form>
                    </font>
                    <br>
                    <a href="index.php"><i class="fa fa-chevron-left" aria-hidden="true"> Tilbage til forsiden</i></a>
                </div>
            </li>
        </div>
    </div>
    <a id="backtotop" href="#top"><i class="fa fa-chevron-up"></i></a>
    <script src="layout/scripts/jquery.min.js"></script>
    <script src="layout/scripts/jquery.mobilemenu.js"></script>
    <script type="text/javascript">
    $(function() {
        $(window).on('hashchange', function() {
            if (window.location.hash == "#hello") {
                document.getElementById("myElement").innerHTML = 'Vi har Hello';
            } else {
                document.getElementById("myElement").innerHTML = '';
            }
        });
    });
    </script>
</body>

</html>

【讨论】:

    【解决方案2】:

    尝试添加这些

    <script src="layout/scripts/jquery.min.js"></script>
    <script src="layout/scripts/jquery.mobilemenu.js"></script>
    

    在头部的顶部

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      • 2015-06-03
      • 1970-01-01
      • 2021-06-09
      • 2022-06-10
      • 2010-12-17
      • 2015-12-03
      相关资源
      最近更新 更多