0

さて、jspページにjavascriptでhtmlオブジェクトを作成したいのですが、「alert(GameObject1.loginurl);」「未定義」と警告します。

以下のコードに誤りがありますか? 「obj.appendChild」が失敗したようですが、なぜですか?

var obj;
try {
obj = document.createElement("object");
obj.id = "GameObject1";
obj.name = "JavaGameObject1";
obj.setAttribute("classid", "clsid:72E6F181-D1B0-4C22-B0D7-4A0740EEAEF5");
obj.width = 640;
obj.height = 526;

var loginurl = document.createElement("param");
loginurl.setAttribute("name", "loginurl");
loginurl.setAttribute("value", "xx.xx.xx.xx:8080");
obj.appendChild(loginurl);

document.body.appendChild(obj);

alert(GameObject1.loginurl);
} catch (e) {
alert("Exception:" + e.message);
}
4

2 に答える 2

0

コードに基づいて、GameObject1定義されることはありません。objID の HTML オブジェクトであるため、代わりに使用したいと思いますGameObject1

ただし、 HTML オブジェクトのプロパティではなく、というobj.loginurl子 HTML オブジェクトを作成したため、 も未定義であることに注意してください。(つまり、あなたが望むようにアクセスするには、それを行う必要があったでしょう)paramloginurlobjobj.loginurl = "xx.xx.xx.xx:8080"

子要素の値を取得するには、オブジェクトに設定した値を返すparamようなものが必要です。または、現在のスコープで を呼び出すこともできます。obj.children[0].valueloginurlloginurl.value

を介して子要素にアクセスするときobj.children[#]は、その位置に要素が存在するかどうかを確認して、どこでも例外をスローしないようにすることをお勧めします。

于 2013-04-28T06:50:28.430 に答える
0

ログインURLにアクセスするには、次を使用できます

alert(obj.getElementsByTagName("param")[0]);
alert(obj.getElementsByTagName("param")[0].name);
alert(obj.getElementsByTagName("param")[0].value);

あなたが言及した方法のようにアクセスすることは、子要素ではなく属性を取得する適切な方法です。

GameObject1  // Will look for Object variable not the object with id "GameObject1" - You should use document.getElementById("GameObject1")
GameObject1.loginurl // will look for attribute and not the child element
于 2013-04-28T07:03:54.513 に答える