2012-04-19 10 views
0

htmlの以下のオブジェクトプロパティを定義し、何らかのオブジェクトを返すjavascriptの関数として定義するにはどうすればよいですか?JavaScript Create関数

HTML:

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

私はジャバスクリプトの外からはgetDesktop()関数を呼び出すことができることをjavascript.Soに以下のようなものをacheiveたいです。

はJavaScript:

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

新しいHTML要素を作成しようとしているのですか、既にページにある情報を返そうとしていますか? –

答えて

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

+0

ありがとうtkone。それはまさに私が探していたものです。パラメータは常に固定されます。 – user1029083

+0

@arothこれはオペレータがキー/ valペアのハッシュを簡単にループして設定できるようにする方法ですが、 – tkone

1

私の解釈は、@ tkoneのとは逆です。うまくいけば私達の1人は正しいです。 :)

このブラウザはJavaScriptが使えますか?もしそうなら、なぜHTMLElementオブジェクトを直接使用しないのですか?あなたが直接格納されている属性を持つシンプルなJSオブジェクトを使用する場合は

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

など

、あなたが作成することができます:あなたは、これが真であるオブジェクトを取得し

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

1つは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' 

など:あなたは、これが真であるオブジェクトを取得します10。

+0

ありがとうございました。はい、これはブラウザのJavaスクリプトです.Javascript SDK APIを作成しています。だから私はJavascript自体でこれを定義したいと思う。 – user1029083