繁体   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