在Webbrowser的文档中插入HTML Object元素

时间:2011-10-01 21:28:36

标签: dom .net-4.0

Webbrowser控件中有一个网页(文档)。我知道如何将任何HTML元素插入到正文中。

问题是,我如何插入<object>及其<param>?我必须保留现有文档,因此我不会使用Webbrowser1.Document.Write()

Dim player As HtmlElement = Webbrowser1.Document.CreateElement("object")
player.SetAttribute("width", "640")
player.SetAttribute("height", "480")

Dim param As HtmlElement = Webbrowser1.Document.CreateElement("param")
param.SetAttribute("name", "movie")
param.SetAttribute("value", "http://foo.bar.com/player.swf")

player.AppendChild(param) '<== throws an exception

Webbrowser1.Document.Body.AppendChild(player)

抛出异常:“值不在有效查找值集合中”(我猜,因为我使用的是法语版的VS2010,它给了我“La valeur n” est pas包括dans la plage atte。“

解决方法

最后,我可以使用带有Javascript URI的<object>方法追加Navigate()元素。它有点难看,但它有效。

1 个答案:

答案 0 :(得分:0)

嗯,我意识到我的回答正是你在做什么的。糟糕。

MSDN文档显示了object Object的许多方法,但没有指定appendChildappendChild方法文档指定它是一堆对象的一部分,但不是对象。 applyElement看起来可能有用。

此外,insertAdjacentHTML方法和innerHTML参数在对象对象上有效,可能会有所帮助。


Hrm - 我不熟悉.net,但我在Javascript中做过类似的事情。 Chrome似乎通过以下方式生成正确的文档设置:

<script>
  var newObj=document.createElement( "object" );
    newObj.setAttribute( 'width', '640' );
    newObj.setAttribute( 'height', '480' );
    newObj.setAttribute( 'data', 'http://ozdoctorwebsite.com/test-4938161.gif' );

  var newParam=document.createElement( "param" );
    newParam.setAttribute( 'name', 'test' );

  newObj.appendChild( newParam );
  document.body.appendChild( newObj );
</script>

基本上 - 将你的param元素追加到玩家并将玩家附加到document.body。