摘要:
枚举所有iframe的IWebBrowser2// Get the IDispatch of the document.//LPDISPATCH lpDisp = NULL;lpDisp = m_webBrowser.GetDocument();if (lpDisp){ IOleContainer* pContainer; // Get the container. // HRESULT hr = lpDisp->QueryInterface(IID_IOleContainer, (void**)&pC... 阅读全文
2013年6月24日 #
2013年6月20日 #
摘要:
js中调用console写日志console.log("some log");console.warn("some warning");console.error("some error");IE:只有在打开IE开发者工具后才能使用console,默认访问IE的console对象会出错。FF和Chrome没有问题。 阅读全文
2013年6月19日 #
摘要:
原文:http://www.cnblogs.com/Jesenwuzj/archive/2010/03/18/1688776.htmlVi中文手册1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:1) 命令行模式command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。2) 插入模式(Insert mode) 只有在 Insert mode下,才可以做文字... 阅读全文
2013年6月18日 #
摘要:
// BHO 中添加下面的函数,设置UIHandler// BHO 包含如下成员变量:// CDocDispatch m_docDispatch;// CComPtr<IDocHostUIHandler> m_spDefaultDocHostUIHandler;// CComPtr<IOleCommandTarget> m_spDefaultOleCommandTarget;HRESULT CBHO::SetDocHostUIHandler(IDispatch *pWebBrowser){ HRESULT hr = S_OK; if(NULL == pWebBrowse 阅读全文
摘要:
往一个空的iframe中写入内容,再其document ready之前有可能遇到拿回 的body指针为空,因此以下面的函数往其document中写入htmlHRESULT WriteToHtmlDocument(CComPtr<IHTMLDocument2> spDoc2, CComBSTR &bstrHtml){ HRESULT hr = S_OK; //BSTR bstr = SysAllocString(OLESTR("Written by IHTMLDocument2::write().")); BSTR bstr = bstrHtml.Copy 阅读全文
摘要:
获得iframe标签的元素指针CComPtr spAdIframe = ...CComQIPtr spFrameBase2 = spAdIframe;CComPtr spIframeWindow2 = NULL; hr = spFrameBase2->get_contentWindow(&spIframeWindow2);由此可得到iframe元素对应的IHTMLWindow2指针,然而如果直接使用IHTMLWindow2::get_document来获取IHTMLDocument2指针的话,经常得到的是E_ACCESSDENIED错误,因为iframe元素经常用于跨域的访问,即 阅读全文
2013年6月17日 #
摘要:
主要就是修改注册表键值使IE不创建多个进程:HKLM\Software\Microsoft\Internet Explorer\Main - TabProcGrowth但需要注意的是这种情况下,vs2008下debug会变卡,不知道神马原因。1. 调整IE tab process growth:修改注册表键值:HKLM\Software\Microsoft\Internet Explorer\Main - TabProcGrowth (string or dword)Tab Process Growth : Sets the rate at which IE creates New Tab p 阅读全文
2013年6月13日 #
摘要:
js脚本是按其出现在文档中的顺序执行的。<script> tag的内容总是在被解析到的时候被js引擎解释,所以最后一个script tag总是当前正在解析的script tag, sample如下:<div><script> var scriptTag = document.getElementsByTagName('script'); scriptTag = scriptTag[scriptTag.length -1]; var parent = scriptTag.parentNode;</script></div> 阅读全文
2013年6月11日 #
摘要:
(4)进程进程是程序运行的一个实例,由以下两部分组成:进程内核对象:操作系统用它来管理和统计进程信息;进程地址空间:所有进程执行所需要的代码和数据存在这个地址空间中。进程是惰性的,进程要做任何事都需要通过线程在其上下文环境中执行来实现。当一个进程创建后,操作系统也同时为其创建一个主线程(primary thread),主线程又会创建其他线程。当进程中所有的线程都停止时,操作系统也同时销毁该进程。W... 阅读全文
2013年6月9日 #
摘要:
调用IHTMLElement::insertAdjacentHTML插入HTMLvirtual /* [id] */ HRESULT STDMETHODCALLTYPE insertAdjacentHTML( /* [in] */ __RPC__in BSTR where, /* [in] */ __RPC__in BSTR html) = 0;可用的where:beforeBeginafterBeginbeforeEndafterEnd特别要注意,当插入的html包含script标签的时候,需要在script标签之前添加其他的text或者tag,... 阅读全文