簡體   English   中英

從外部.js文件在.html文件中設置值

[英]set a value in .html file from an external .js file

我有一個main.js來處理按下的鍵。 我有一個index.html我想從main.js接收一些變量並做出決定。 例如,我想從main.js發送一個URL到index.html ..我在main.js中嘗試了此代碼,但是沒有用。

document.getElementById("url").value = "http://example.com";

在我的index.html中,我有:

<form name="Params">
<input id="url" type="hidden" value="">
</form>

我只想從main.js設置我的url輸入對象的值。 有什么幫助嗎?

何時調用值分配很重要。 必須在加載DOM之后。 為此,您可以嘗試以下方法之一。

  1. 最簡單的方法是將main.js腳本標簽放在/body close標簽之后。 它應該工作。

  2. 在main.js中的函數中分配值,然后調用該函數的onload事件。

--main.js

function assignValue()
{
    document.getElementById("url").value = "http://example.com";
}

--index.html

<body onload="assignValue()" >

您的代碼對我來說看起來不錯,但是觸發它的代碼可能沒有被解雇。 您尚未包括觸發URL設置的代碼的另一部分。

我猜它沒有起作用的原因是因為您沒有等待DOM初始化並且Web瀏覽器已經完成了對HTML的解析。

解決此問題的最簡單方法是將其插入main.js文件中的window.onload回調中:

// Wait for the DOM to finish loading.
var previousOnload = window.onload;
window.onload = function () {

    // Execute any other `onload` function which may have been bound previously.
    if (typeof previousOnload === 'function') {
        previousOnload();
    }

    document.getElementById("url").value = "http://example.com";
});

但是,最好監聽DOM Ready事件。 如果您使用的是jQuery,則可以簡單地編寫:

// Wait for the DOM to initialize first.
$(function () { 
    document.getElementById("url").value = "http://example.com";    
});

如果您不想依賴jQuery,那么可以看看超輕量級的DOMReady.js。

暫無
暫無

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

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