执行IHTMLDocument2::write() 弹出安全缺陷窗口,如何避免
//declare our MSHTML variables and create a documentMSHTML::IHTMLDocument2Ptr pDoc;
HRESULT hr = CoCreateInstance(CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER,
IID_IHTMLDocument2, (void**)&pDoc);
//put the code into SAFEARRAY and write it into document
SAFEARRAY* psa = SafeArrayCreateVector(VT_VARIANT, 0, 1);
VARIANT *param;
bstr_t bsData = (LPCTSTR)csWholeFile; // csWholeFile : html文件的源代码
hr = SafeArrayAccessData(psa, (LPVOID*)¶m);
param->vt = VT_BSTR;
param->bstrVal = (BSTR)bsData;
SafeArrayUnaccessData(psa);
hr = pDoc->write(psa);
hr = pDoc->close();
SafeArrayDestroy(psa);
。。。。。。。。
程序是要读取远程网页的源代码(如 : http://www.baidu.com),然后分析HTML代码中的链接,下载链接。
先将网页html代码导入IHTMLDocument2 文档对象
但是执行hr = pDoc->write(psa); 弹出安全缺陷窗口“该页包含未知的潜在安全缺陷,是否继续”,有什么方法能
让他不弹出这个对话框,挺烦人的,谢谢了。
另 :并不是所有的网页都会弹出这个安全缺陷窗口,google就不会的,可能和html代码本身有关系。 --------------------编程问答-------------------- 浏览器控件等增加如下接口
virtual BOOL IsExternalDispatchSafe() { return TRUE; }
// External JavaScript
virtual BOOL CanAccessExternal() { return TRUE; }
--------------------编程问答-------------------- 上面的大侠的方法好像不行哦。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 标记 顶 --------------------编程问答-------------------- 过滤掉<script>…………</script>标记
补充:.NET技术 , VC.NET