0

所有,我想在jsp页面中用javascript创建一个html obejct,但是'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永远不会定义。我认为您想obj改用它,因为那是 ID 的 HTML 对象GameObject1

然而,我会注意到,当您创建名为obj.loginurl的子 HTML 对象时,even 仍然是未定义的,而不是 HTML 对象的属性。(即,您需要按照您想要的方式访问它)paramloginurlobjobj.loginurl = "xx.xx.xx.xx:8080"

要获取 child elementparam的值,您需要类似的东西obj.children[0].value将返回您在loginurl对象上设置的值。或者,在您当前的范围内,您可以调用loginurl.value.

通过 访问子元素时obj.children[#],最好检查该位置的元素是否存在,这样就不会到处抛出异常。

于 2013-04-28T06:50:28.430 回答
0

要访问 loginurl,您可以使用

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 回答