[英]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之后。 為此,您可以嘗試以下方法之一。
最簡單的方法是將main.js腳本標簽放在/body
close標簽之后。 它應該工作。
在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.