簡體   English   中英

如何在jsp頁面中使用javascript創建html對象

[英]How to create a html obejct with javascript in a jsp page

所有,我想在一個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);
}

根據您的代碼,從未定義GameObject1 我認為您想使用obj代替,因為那是ID GameObject1的HTML對象。

不過,我會注意,即使obj.loginurl為您創建的子HTML對象仍然是不確定param稱為loginurl ,而不是一個屬性的HTML對象obj (即,您可能需要執行obj.loginurl = "xx.xx.xx.xx:8080"才能以您希望的方式對其進行訪問)

要獲取子元素param的值,您需要使用obj.children[0].value類的東西,它將返回您在loginurl對象上設置的值。 或者,在您當前的作用域中,您可以僅調用loginurl.value

通過obj.children[#]訪問子元素時,最好進行檢查以查看該位置上的元素是否存在,以便您不會在任何地方拋出異常。

要訪問登錄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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM