簡體   English   中英

從外部javascript文件調用html中的函數

[英]calling functions in html from external javascript file

這是一個簡單實用的方法,但我不確定自己做錯了什么。
我的外部 javascript 文件中有以下代碼:

function myname(){
    document.write("Monique");  
}

function welcomeW(name){
    document.write("Welcome " + name + "!");
}

function welcomeR(name){
    return "Welcome " name "!";
}

我添加了這個<script>標簽來鏈接到我的 html 文件:

<script src="script.js" type="text/javascript"></script>

我嘗試使用以下方法調用 html 中的函數:

<script> myname(); </script>
<script> welcomeW(Monique); </script>
<script> welcomeR(Monique); </script>

當我在 html 中編寫函數時它起作用了,但在外部文件中沒有任何反應。

Monique,您的代碼中只有一個問題,請在傳遞參數時使用單引號(即“Monique”)或雙引號(“Monique”),我會收到“Uncaught ReferenceError: Monique is not defined”錯誤信息。

<script> myname(); </script>
<script> welcomeW("Monique"); </script>
<script> welcomeR("Monique"); </script>

或者使用這個。

<script> myname(); </script>
<script> welcomeW('Monique'); </script>
<script> welcomeR('Monique'); </script>

如果<script>src則元素的文本內容將不會作為 JS 執行(盡管它會出現在 DOM 中)。

您需要使用多個腳本元素。

  • <script>加載外部腳本
  • 一個<script>來保存你的內聯代碼(在外部腳本中調用函數)

您可能將<script src="<your js file>" type="text/javascript"></script>放在 html 文件中的錯誤位置。 嘗試將其放在<head></head>或正文結束標記</body>之前。

另一個常見錯誤是在<script src="<your js file>" type="text/javascript"></script>嘗試輸入類似的位置,例如: <script src="./index.js" type="text/javascript"></script>如果您的 index.js 文件與 index.html 位於同一文件夾中。

希望能幫助到你

根據您的描述,您正在調用函數並正確鏈接 Html 中的 js 文件。 只有幾件事導致了錯誤。

  1. welcomeR 函數有一點語法錯誤。 您可能會遇到 Uncaught SyntaxError: Unexpected identifier 'name'和 *uncaught ReferenceError: myname is not defined”。您需要在 welcomeR 的返回語句的字符串和名稱之間添加“+”來解決此錯誤。使用控制台。 log() 語句來檢查您的 js 文件是否按預期運行。

  2. 當您調用 html 文件中的函數時,您應該有一個未捕獲的語法錯誤,其中未定義 Monique。 您只需要將 welcomeW 和 welcomeR 功能從

     <script> myname(); </script> <script> welcomeW(Monique); </script> <script> welcomeR(Monique); </script>

    <script> myname(); </script>
    <script> welcomeW("Monique"); </script>
    <script> welcomeR("Monique"); </script>

所以你正在傳遞字符串。

有了這個,你應該能夠得到“MoniqueWelcome Monique!” 為您的輸出。

  1. 最后一個函數 welcomeR 不會將任何內容輸出到輸出文件中,因為它返回一個 str,並且不會更改外部文件的內容。 如果你希望它也輸出到你的文件中,寫

     welcomeR("Monique")

作為

  document.write(welcomeR("Monique"));

您忘記了返回時的+。 而且您可以只調用腳本中的函數。如果您正確鏈接它,那么它應該可以工作。

如果你不知道。 Return 不打印/寫入任何內容。 它只是返回。 如果你想寫它,你只需要這樣做。

var welcomeR = return "Welcome " + name + "!"; and document.write(welcomeR);

 <script> function myname(){ document.write("Monique"); } function welcomeW(name){ document.write("<br/>" +"Welcome " + name + "!" + "<br/>"); } function welcomeR(name){ return "Welcome " + name + "!"; } myname(); welcomeW("Monique"); welcomeR("Monique"); </script>

確保將腳本函數調用放在腳本 src 標記之后。

暫無
暫無

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

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