2012-04-19 100 views
0

如何定義html的以下對象屬性並將其定義爲javascript中將返回某個對象的函數。JavaScript創建函數

HTML:

<object id="desktop" type="application/x-desktop" width="500" height="200"> 
<param name="client_type" value="VISTA" /> </object> 

我想acheive在javascript.So類似下面,我可以從JavaScript之外調用GetDesktop()函數。

的JavaScript:

function GetDesktop() 
    { 
    object.id = "desktop; 
    object.type = "application/x-desktop" 
    .... 
    ... 
    ... 
    } 
+0

您是否正在嘗試創建新的HTML元素,或返回有關頁面上已有的信息? – 2012-04-19 15:18:07

回答

2

你想從一個JS函數返回上面的HTML?

var GetDesktop = function(){ 
    var obj = document.createElement('object'); 
    obj.setAttribute('id', 'desktop'); 
    obj.setAttribute('type', 'application/x-desktop'); 
    obj.setAttribute('width', '500'); 
    obj.setAttribute('height', '200'); 
    var param = document.createElement('param'); 
    param.setAttribute('name', 'client_type'); 
    param.setAttribute('value', 'VISTA'); 
    obj.appendChild(param); 

    return obj; 
} 

顯然,如果其中任何性質的需要改變,你可以將它們作爲參數傳遞給函數...

+1

嚴格來說,那些'setAttribute()'調用是不必要的。 'obj.id ='desktop';'會做同樣的事情。 – aroth 2012-04-19 02:22:12

+0

謝謝tkone。這正是我所期待的。參數將始終是固定的。 – user1029083 2012-04-19 07:02:02

+0

@aroth它們只是這樣,op可以很容易地通過key/val對的散列來設置它們。 – tkone 2012-04-19 10:49:21

1

我這個問題的解釋是@ tkone的相反。希望我們中的一個是對的。 :)

這是瀏覽器Javascript?如果是這樣,那麼爲什麼不直接使用HTMLElement對象呢?

var obj = document.getElementById('desktop'); 

,讓你的對象,也是它如此:

obj.getAttribute('id') // -> 'desktop' 
obj.getAttribute('type') //-> 'application/x-desktop' 

如果你想與屬性的簡單的JS對象直接存儲,您可以創建一個通過循環DOM屬性:

var elem = document.getElementById('desktop'); 
    var obj = {}; 
    var attrCount = elem.attributes.length; 
    for (var i=0; i<attrCount; ++i) { 
     var attr = elem.attributes[i]; 
     obj[attr.name] = attr.value 
    } 

,讓你的對象,也是它如此:

obj.id // -> 'desktop' 
obj.type //-> 'application/x-desktop' 

+0

謝謝馬克。是的,這是瀏覽器的Java腳本。我正在寫Javascript SDK API。所以我想用Javascript本身來定義它。 – user1029083 2012-04-19 07:00:50