0

押されたキーを処理する main.js があります。そして、main.jsからいくつかの変数を受け取り、それについて決定したいindex.htmlがあります。たとえば、main.js から index.html に URL を送信したい.. main.js でこのコードを試してみましたが、うまくいきませんでした。

document.getElementById("url").value = "http://example.com";

私のindex.htmlには次のものがあります:

<form name="Params">
<input id="url" type="hidden" value="">
</form>

main.js から URL 入力オブジェクトの値を設定したいだけです。助けはありますか?

4

3 に答える 3

0

値の割り当てをいつ呼び出したかは重要です。DOM がロードされた後である必要があります。これを行うには、次のいずれかを試すことができます。

  1. 最も簡単な方法は、終了タグの後に main.js スクリプト タグを配置すること/bodyです。それはうまくいくはずです。

  2. main.js の関数に値を代入し、その関数onloadイベントを呼び出します。

--main.js

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

--index.html

<body onload="assignValue()" >
于 2012-08-16T10:21:13.017 に答える
0

あなたのコードは私には問題ないように見えますが、おそらくそれをトリガーするコードが起動されていません。URL の設定をトリガーするコードの他の部分が含まれていません。

于 2012-08-16T10:21:31.037 に答える
0

DOM が初期化されるのを待っておらず、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を調べることができます。

于 2012-08-16T10:23:55.870 に答える