簡體   English   中英

無法從外部JavaScript調用函數

[英]Unable to call function from external JavaScript

我有一個簡單的HTML頁面,該頁面調用JavaScript函數:

<!DOCTYPE html>
<html>
    <script type="text/javascript" src="css/myscript.js"></script>
    <head>
        <link rel="stylesheet" href="css/style.css">
    </head>
    <body onload="javascript:hello()">
    </body>
</html>

這是我的hello()函數:

<script>
function hello() {
    alert("load new content");
    document.open();
    document.write("<h1>Changed content!</h1>");
    document.close();
}
</script>

將JavaScript塊直接粘貼到頁面中時,它可以工作。 但是,如果JavaScript包含在專用文件中,則無法找到hello()

使用開發人員工具,我可以看到JavaScript文件已成功加載。

如果您的js文件中包含這些腳本標簽,請擺脫它們。

2個問題,在腳本解析期間,文檔已經打開。 如果再次打開,所有內容都將被刪除,因此將其刪除(write已經是打開的調用)。 其次,請確保不要在load事件之后添加腳本,以便真正定義函數hello。 在這里,我將其添加到正文中(或者如果需要,可以使用defer。) 這是小提琴

<head>
  <link rel="stylesheet" href="css/style.css">

</head>
<body onload="hello();">
</body>



 function hello() {
      alert("load new content");
      //document.open();
      document.write("<h1>Changed content!</h1>");
      document.close();
    }

myscript.js的內容應為:

function hello() {
  alert("load new content");
  document.open();
  document.write("<h1>Changed content!</h1>");
  document.close();
}

僅當您的JavaScript位於HTML文件中時,才包括<script>標記。 <script>告訴瀏覽器,“嘿,我們不再解釋HTML。這是JavaScript。”

而且,正如Colin在評論中指出的那樣, myscript.js可能不屬於您的css文件夾。 包含您網站的所有JavaScript文件的文件夾的通用名稱是js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM