2013-04-28 1 views
0

все, я хочу создать html obejct с javascript на странице jsp , но 'alert (GameObject1.loginurl);' будет предупреждать «неопределенный».Как создать html obejct с javascript на странице jsp

Получаете ли я некоторые ошибки в коде ниже? Кажется, что «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); 
} 
+2

Что вы ожидаете получить от 'GameObject1.loginurl'? – Musa

ответ

0

на основе кода, GameObject1 никогда не определяется. Я думаю, что вы хотите использовать obj вместо этого, поскольку это объект HTML для ID GameObject1.

Замечу, однако, что даже obj.loginurl все равно будет определено, как вы создали дочерний HTML объект param под названием loginurl, а не свойство в HTML объекта obj. (То есть. Вы нуждались бы сделать obj.loginurl = "xx.xx.xx.xx:8080" для доступа к нему так, как вы, кажется, хотите)

Чтобы получить дочерний элемент param значение «s, вы хотели бы что-то вроде obj.children[0].value который будет возвращать значение, установленное на ваш loginurl объект. Кроме того, в вашей текущей области можно просто позвонить loginurl.value.

При доступе к дочерним элементам через obj.children[#] лучше всего проверить, существует ли элемент в этой позиции, чтобы вы не бросали исключения везде.

+0

Спасибо, я могу получить значение через GameObject1.children [#]. – samir

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 
+0

спасибо за помощь – samir