none
wpf broswer application和HTML javascript交互的问题。不是用webbroswer控件的方式,搞了2天了没搞定啊,高手现身帮一下。 RRS feed

  • 问题

  • 现在用wpf 浏览器应用程序做了 程序,用iframe的方式嵌在网页中了。已经做了证书的签名。现在基本没有什么访问限制了。
    但是就只有一个问题搞不定啊。和 嵌入这个HTML页面做javascript的调用。查了一下资料 基本都是用Microsoft.mshtml
    试了很多办法,但是只有debug的时候可以调用javascript 。发布以后就不行了。
    如果是用 ObjectFromLresult 来获取IHTMLDocument 就是抱上面错
    System.Runtime.InteropServices.COMException (0x80004005): 对 COM 组件的调用返回了错误 HRESULT E_FAIL。
       在 WpfBrowerJavaScript.Page1.ObjectFromLresult(UIntPtr lResult, Guid refiid, IntPtr wParam)
    如果是用 SHDocVw 就是报
    System.IO.FileNotFoundException: 检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 80070002。

    但是代码都是没有问题的。在debug模式下都可以正常调用javascript

    怀疑和COM的调用权限有关系。但是又不知道怎么解决。。。。。。
    silverlight都有专门的类来处理javascript交互。wpf咋没呢。谁来帮帮啊 谢谢。
    2009年4月10日 16:10

答案

  • 现在用wpf 浏览器应用程序做了 程序,用iframe的方式嵌在网页中了。已经做了证书的签名。现在基本没有什么访问限制了。
    但是就只有一个问题搞不定啊。和 嵌入这个HTML页面做javascript的调用。查了一下资料 基本都是用Microsoft.mshtml
    试了很多办法,但是只有debug的时候可以调用javascript 。发布以后就不行了。
    如果是用 ObjectFromLresult 来获取IHTMLDocument 就是抱上面错
    System.Runtime.InteropServices.COMException (0x80004005): 对 COM 组件的调用返回了错误 HRESULT E_FAIL。
       在 WpfBrowerJavaScript.Page1.ObjectFromLresult(UIntPtr lResult, Guid refiid, IntPtr wParam)
    如果是用 SHDocVw 就是报
    System.IO.FileNotFoundException: 检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 80070002。

    但是代码都是没有问题的。在debug模式下都可以正常调用javascript

    怀疑和COM的调用权限有关系。但是又不知道怎么解决。。。。。。
    silverlight都有专门的类来处理javascript交互。wpf咋没呢。谁来帮帮啊 谢谢。

    我的建议是你在 wpf control 里面public 出来一个IHTMLDocument 属性  用js 把 document 对象传递进去试验下。。。
    答案900, 目标五颗星
    2009年7月8日 7:44
    版主