我有一个处理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输入对象的值。 有什么帮助吗?
答案 0 :(得分:0)
重要的是什么时候调用价值分配。它必须在DOM加载后。为此,您可以尝试以下方法之一。
最简单的方法是在/body
关闭标记后放置您的main.js脚本标记。它应该工作。
在main.js中的函数中赋值并调用该函数onload
event。
- 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