0

javascripthtmlの次のオブジェクトプロパティを定義し、オブジェクトを返す関数として定義するにはどうすればよいですか。

HTML:

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

javascript で以下のようなものを実現したいので、javascript の外部から GetDesktop() 関数を呼び出すことができます。

JavaScript:

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

2 に答える 2

2

上記の HTML を JS 関数から返したいですか?

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;
}

明らかに、これらのプロパティのいずれかを変更する必要がある場合は、それらをパラメーターとして関数に渡すことができます...

于 2012-04-19T01:21:52.730 に答える
1

質問に対する私の解釈は、@tkone の解釈とは逆です。うまくいけば、私たちの1人が正しいです。:)

このブラウザは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' 

など

于 2012-04-19T01:44:39.457 に答える