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