.net IHTMLSelectionObject.createRange()引发UnauthorizedAccessException
我编写了以下代码,用于从当前网页检索所选文本: IHTMLDocument2 mainDoc = ... for ( int i = 0; i < mainDoc.frames.length; i++ ) { object refIndex = i; var frame = (IHTMLWindow2)mainDoc.frames.item( ref refIndex ); IHTMLDocument2 frameDoc; try { frameDoc = frame.document; } catch ( UnauthorizedAccessException ex ) { // Source: http://codecentrix.blogspot.com/2008/02/when-ihtmlwindow2document-throws.html var sp = (IServiceProvider)frame; // Use IServiceProvider.QueryService to get IWebBrowser2 object. object brws = null; sp.QueryService( ref IID_IWebBrowserApp, ref IID_IWebBrowser2, out brws ); // Get the document from IWebBrowser2. IWebBrowser2 browser = (IWebBrowser2)brws; frameDoc = (IHTMLDocument2)browser.Document; } var range = frameDoc.selection.createRange() as IHTMLTxtRange; if ( !string.IsNullOrEmpty(range.text) ) return range.text; } return string.Empty; IHTMLDocument2主文档=。。。 对于(int i=0;i.net IHTMLSelectionObject.createRange()引发UnauthorizedAccessException,.net,internet-explorer,dom,webbrowser-control,bho,.net,Internet Explorer,Dom,Webbrowser Control,Bho,我编写了以下代码,用于从当前网页检索所选文本: IHTMLDocument2 mainDoc = ... for ( int i = 0; i < mainDoc.frames.length; i++ ) { object refIndex = i; var frame = (IHTMLWindow2)mainDoc.frames.item( ref refIndex ); IHTMLDocument2 frameDoc; try { fra
如何避免此错误?这是预期的行为,默认情况下已禁用,并且您正在跨帧执行脚本,而不考虑其域。已经有一段时间了。但是您解决过这个问题吗?
frameDoc.selection.createRange()
不一定返回IHTMLTxtRange-可能先查询selection.type
属性?看见