iframe和文档c#中的IE Extention / Plugin / Addon javascript注入

我在C#中遇到BHO问题,Javascript没有在iframe中注入。

如何使用c ++ / ATL / COM访问 body? 问题类似,但在上面使用com。 我想用C#。

我已经创建了一个IE扩展/插件/插件来在页面上注入我的自定义JavaScript以及在文档上注入IFrame附件

所以我在c#中创建了BHO。 在文档完成事件中

private void webBrowser_DocumentComplete(object pDisp, ref object URL) { // this is main docuemnt document = (HTMLDocument)webBrowser.Document; //------------------------------------------------------------------------------------- IHTMLElementCollection elcol = document.getElementsByTagName("iframe"); foreach (IHTMLElement _htmlElement in elcol) { try { //This line is for specific iframe on body //string fUrl = ((mshtml.HTMLIFrameClass)_htmlElement).IHTMLFrameBase_src; //if (fUrl.Contains("/v1/api/login?isIframe=true")) //{ // in this casting HtmlElement HTMLFrameElement HTMLFrameElement frmelement = (HTMLFrameElement)_htmlElement; //from HTMLFrameElement Casting as a WebBrowser2 because it will give us body of i frame and works a document . DispHTMLDocument doc2 = (DispHTMLDocument)((SHDocVw.IWebBrowser2)frmelement).Document; //no Doc2 is documnt without access denied .. do what ever you want to do //Here i am checking wheather document having body or not if (doc2.body != null) { //Here i am checking Already injected or not if not then inject my javascript here if (doc2.getElementById("UniqueDivVishal") == null) { IHTMLElement head = (IHTMLElement)((IHTMLElementCollection)doc2.all.tags("head")).item(null, 0); IHTMLScriptElement scriptObject = (IHTMLScriptElement)doc2.createElement("script"); scriptObject.type = @"text/javascript"; scriptObject.text = Properties.Resources.SearchHelper1; ((HTMLHeadElement)head).appendChild((IHTMLDOMNode)scriptObject); string div2 = "
"; doc2.body.insertAdjacentHTML("beforeend", div2); } //execute a function from BHO which is in Iframe doc2.parentWindow.execScript("funcation(){ InitFn(); alert('Hello From Frame')}", "javascript"); } //} } catch (Exception ex) { //Handle Exception here // } } }

有关详细信息,请与我联系:vishalroxx7@gmail.com