我的一个窗体中嵌了一个webbrowser,里面的web内容有时比较复杂,javascript操作dom比较频繁,较多.经常导致如下的错误.---------------------------
Access violation at address 6587B7CF in module 'mshtml.dll'. Read of address 0000000E.
---------------------------
OK   
---------------------------直接在IE里浏览不会出现此类错误,仅仅在webbrowser控件里经常出现.这种情况在ie6-8,xp,win7 都有出现.
开始我怀疑是Delphi的webbroser控件有问题,后使用C# winform嵌的webbrowser控件也有这个问题.后我们通过修改脚本,可以规避大部分问题,但某些地方崩溃概率很低的地方,不好测试,无法根本性解决这个问题.请教,大家遇到过没有?

解决方案 »

  1.   

    類似內在錯誤一般是讀取web內容出錯或javascript數據髒讀執行到哪一步報的錯?貼出錯誤代碼看看如果說想用delphi中webbrowser組件來實現獲取dom對象,你可以這樣:  Window:WebBrowser.OleObject.document.ParentWindow
      Document:WebBrowser1.OleObject.Document
      Body:WebBrowser1.OleObject.Document.Body
      All:WebBrowser.OleObject.document.Body.All //物件陣列
      Links:WebBrowser.OleObject.document.Links //物件陣列
     (類似的還有很多,請參考 Html 的文檔物件模型。) 
     
      

  2.   

    你说的原因我明白"讀取web內容出錯或javascript數據",有的地方,可以测试到哪一行js导致,直接改掉即可,但有的地方不能很好的验证到.但IE却能健壮的工作,说明它能处理掉那些错误.在控件中,不知道webbroser控件是否有办法.我没有用delphi直接操作webbrowser里面的DOM,我感觉那样出异常的可能性更高.