[英]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.