在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()
元素。它有点难看,但它有效。
答案 0 :(得分:0)
嗯,我意识到我的回答正是你在做什么的。糟糕。
MSDN文档显示了object Object的许多方法,但没有指定appendChild
。 appendChild
方法文档指定它是一堆对象的一部分,但不是对象。 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。