[英]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就绪事件”,您将看到很多对此的讨论,以及许多解决方案。 如果您使用的是jQuery , Prototype或其他几种库,则该库中有适合您的可能性很高(但并非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.