0

我如何定义html的以下对象属性并将其定义为一个函数,javascript该函数将返回一些对象。

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

您想从 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;
}

显然,如果这些属性中的任何一个需要更改,您可以将它们作为参数传递给函数......

于 2012-04-19T01:21:52.730 回答
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' 

等等

于 2012-04-19T01:44:39.457 回答