簡體   English   中英

如何通過外部JavaScript設置HTML元素的值

[英]How to set the value for an HTML element from external javascript

我正在使用帶有功能setval()的外部javascript文件(例如: myjs.js setval()來設置HTML標簽的innerText屬性。

我有帶有<lable id="abc"></lable> PHP頁面,並且在<head>部分中包含了myjs.js myjs.js包含在另一個PHP文件的<head>部分中,我正在從該文件中調用setval() ,因此在其運行時必須在第一個PHP文件中設置lable的innerText

有可能實現嗎? 任何建議,不勝感激。 我希望我能澄清問題。

謝謝

理想情況下,將myjs.js移到頁面底部 (在</body>標記之前或之后)。 然后就是:

document.getElementById("abc").innerText = /* ...the text */;

現場示例 | 資源

如果由於某種原因無法移動包含,則可以將上面的代碼放入函數中,例如:

function updateTheLabel() {
    document.getElementById("abc").innerText = /* ...the text */;
}

...然后將此腳本放在標簽之后:

<label id="abc"></label>
<script>
updateTheLabel();
</script>

現場示例 | 資源

如果您不想這樣做(將腳本標簽混合到這樣的標記中有點丑陋),則可以等待頁面准備就緒時發生的某種事件。 搜索“ javascript dom就緒事件”,您將看到很多對此的討論,以及許多解決方案。 如果您使用的是jQueryPrototype其他幾種庫,則該庫中有適合您的可能性很高(但並非100%)。 您可能不想等待window load事件,因為這在頁面加載過程中觸發得很晚(在加載所有外部資源(圖像等)之后)。

(在不知道您使用的是哪個庫的情況下,不能做上面的實時示例;但是,這里有許多“准備就緒”的解決方案。)

或者我認為最壞的情況是,您可以在myjs.js使用它進行myjs.js

function updateTheLabel() {
    var elm = document.getElementById("abc");
    if (elm) {
        elm.innerText = /* ...the text */;
    }
    else {
        setTimeout(updateTheLabel, 50);
    }
}
setTimeout(updateTheLabel, 0);

現場示例 | 資源

暫無
暫無

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

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