javascript - 为什么 <script src =""> 不起作用?

标签 javascript html

为什么我无法通过 src 方法访问脚本,但是当我将脚本放入 html 文件中时一切正常?有任何想法吗?我做了很多事情,例如将此脚本放入文件夹等中,但现在我将它放在与我的 html 站点相同的文件夹中,那么问题是什么?请帮助我!

这是我的 .html 文件

<html lang="pl">
<head>
    <title> HTML/CSS: układ strony www w oparciu o elementy HTML5. </title>
    <meta charset="UTF-8">
<script src="data.js" type="text/javascript"></script>
    <link rel="stylesheet" href="style.css">
</head>

<body>

    <div id="strona">
        <header class="elementy">
         <img src="zdj/win95.png" alt="Win95" />
         <p>Najlepszy system operacyjny świata...</p>
         <div id="txt"></div>
        </header>

        <nav id="nav_gorny" class="elementy">
           <ol>
           <li class="home"><a href="index.html">Strona główna</a></li>
           <li class="system"><a href="system.html">O systemie</a></li>
           <li class="wymag"><a href="wymagania.html">Wymagania</a></li>
           <li class="galeria"><a href="galeria.html">Galeria</a></li>
           </ol>
        </nav>

        <nav id="nav_lewy" class="elementy">
        <ul>
            <li><a href="index.html">Strona główna</a></li>
            <li><a href="system.html">O systemie</a></li>
            <li><a href="wymagania.html">Wymagania systemu</a></li>
            <li><a href="galeria.html">Galeria zdjęć Windows95</a></li>
            <li><a href="programy.html">Programy</a></li>
            <li><a href="autor.html">Autor</a></li>
        </ul>
        </nav>


        <article>
            <section id="sekcja_gorna" class="elementy">
                <p> Wymagania sprzętowe </p>
            </section>
            <section id="sekcja_dolna" class="elementy">
                <p>
                <table style="width:100%">
                     <tr>
                        <th>Minimalne</th>
                        <th>Zalecane</th>
                     </tr>
                    <tr>
                        <td>Procesor Intel 80386DX 16 MHz</td>
                        <td>Procesor Intel 80486DX 16 MHz</td>
                    </tr>
                        <tr>
                        <td>4 MB pamięci RAM (8 MB przy OSR2 i późniejsze)  </td>
                        <td>8 MB pamięci RAM (16 MB przy OSR2 i późniejsze)</td>
                    </tr>
                        <tr>
                        <td>50-55 MB wolnego miejsca na dysku</td>
                        <td>50-55 MB wolnego miejsca na dysku</td>
                    </tr>
                    <tr>
                        <td>VGA (640x480), 16 kolorów</td>
                        <td>SVGA (800x600), 256 kolorów</td>
                    </tr>
                        <tr>
                        <td>Stacja dyskietek 3½" o wysokiej gęstości</td>
                        <td>Stacja dyskietek i napęd CD-ROM</td>
                    </tr>
                    </table>
                </p>                
            </section>
        </article>
</br>
        <aside class="elementy">
        <a href="#">
        <img src="zdj/auto.jpg">
        </a>
        <a href="#">
        <img src="zdj/poz.png">
        </a>
        </aside>
<br />
       <center> <footer class="elementy">
           <p> Copyright © Maciej Śliwiński 4F &nbsp;<a href="kontakt.html"> Kontakt &nbsp;</a> <a href="autor.html"> Autor </a></p>
        </footer></center> 
    </div>


</body>
</html>

这是我的 .js 文件

function startTime() {
    var today = new Date();
    var h = today.getHours();
    var m = today.getMinutes();
    var s = today.getSeconds();
    m = checkTime(m);
    s = checkTime(s);
    document.getElementById('txt').innerHTML =
    "Time: " + h + ":" + m + ":" + s;
    var t = setTimeout(startTime, 500);
}
function checkTime(i) {
    if (i < 10) {i = "0" + i};  
    return i;
}

最佳答案

从您的代码来看,您似乎没有调用任何一个函数。如果您确定脚本未加载,F12 工具将会提供帮助,正如其他人在评论中建议的那样。

尝试调用 JavaScript 文件底部的 startTime() 函数,看看它是否有效:

function startTime() {
  var today = new Date();
  var h = today.getHours();
  var m = today.getMinutes();
  var s = today.getSeconds();
  m = checkTime(m);
  s = checkTime(s);
  document.getElementById('txt').innerHTML =
  "Time: " + h + ":" + m + ":" + s;
  var t = setTimeout(startTime, 500);
}
function checkTime(i) {
  if (i < 10) {i = "0" + i};  
  return i;
}
startTime();

更新:下面评论中提到的错误是由于页面上存在 txt 元素之前执行的脚本引起的。这里有两个解决方案:

  1. 将脚本移至页面底部。
<html>
  <head>
    ...
  </head>
  <body>
    ...
    <script src="data.js"></script>
  </body>
</html>
  • 在页面加载之前不要执行脚本。有几种方法可以做到这一点。这是一个:
  • // Instead of this at the end of your script:
    startTime();
    // Do this:
    window.addEventListener('load', startTime);
    

    关于javascript - 为什么 &lt;script src =""> 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121649/

    相关文章:

    javascript - chrome 正在以全窗口模式打开 window.open()。

    javascript - 如何在 APIGEE 上使用 Javascript 通过 3DES、CBC 模式加密文本

    javascript中的php变量

    javascript - 从同级框架中定位包含 iframe 的框架

    javascript - 应用根据应用背景颜色改变颜色的边框

    html - : 以下内容涵盖的 Bootstrap 下拉菜单内容

    html - 任何人都可以为我改变这个吗?评级系统 css 从 "high to low"到 "low to high"

    javascript - 重定向到移动网站

    javascript - 如何在ChartJs中隐藏y轴线?

    html - 浏览器显示不同的 View chrome 与 firefox