在外部.js文件中设置.html文件中的值

时间:2012-08-16 10:16:02

标签: javascript html

我有一个处理Key按下的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输入对象的值。 有什么帮助吗?

3 个答案:

答案 0 :(得分:0)

重要的是什么时候调用价值分配。它必须在DOM加载后。为此,您可以尝试以下方法之一。

  1. 最简单的方法是在/body关闭标记后放置您的main.js脚本标记。它应该工作。

  2. 在main.js中的函数中赋值并调用该函数onload event。

  3. - main.js

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

    - index.html的

    <body onload="assignValue()" >
    

答案 1 :(得分:0)

您的代码对我来说很好,但也许触发它的代码不会被触发。您尚未包含触发URL设置的代码的其他部分。

答案 2 :(得分:0)

我猜测它没有用的原因是因为你没有等待DOM to initialize并且Web浏览器已经完成了对HTML的解析。

此问题最简单的“修复”是挂钩window.onload文件中的main.js回调:

// 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