社区
ATL
帖子详情
高分求教:BHO技术拦截Flash,但写入的js代码无效!
shines77
2005-05-13 01:42:57
使用IE的BHO技术,Browser Helper Object写的Flash拦截,原来的Flash代码已经被替换成我定义的HTML了,但写入的JS代码(JavaScript)代码却无效,好像被过滤或没有生效
在事件OnDocumentComplete, OnNavigateComplete2完成后替换原来的Flash Code
不知道该如何让写入的JS生效,多指教。谢谢~
呵呵,不好意思,高分也只能一次给200,不够再说
...全文
320
13
打赏
收藏
高分求教:BHO技术拦截Flash,但写入的js代码无效!
使用IE的BHO技术,Browser Helper Object写的Flash拦截,原来的Flash代码已经被替换成我定义的HTML了,但写入的JS代码(JavaScript)代码却无效,好像被过滤或没有生效 在事件OnDocumentComplete, OnNavigateComplete2完成后替换原来的Flash Code 不知道该如何让写入的JS生效,多指教。谢谢~ 呵呵,不好意思,高分也只能一次给200,不够再说
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shines77
2005-06-01
打赏
举报
回复
发了个新贴,此贴先结了,我知道我问得唐突也比较白痴(本人也不太喜欢这样的行为),但是由于比较忙,见谅
http://community.csdn.net/Expert/topic/4052/4052185.xml?temp=.4946253
newcore
2005-05-29
打赏
举报
回复
恩...
modena
2005-05-27
打赏
举报
回复
呵呵,顺便送上调用方法:
CStringArray pParam;
pParam.Add( pszServerAddr );
pParam.Add( pszUserName );
pParam.Add( pszPassword );
CallJScript( "SetLastUser", pParam );
CString strStatus;
strStatus.Format("%d", (int) bAutoLogin);
CallJScript( "setLastPasswordStatus", strStatus );
lion_wing
2005-05-26
打赏
举报
回复
OnDocumentComplete, OnNavigateComplete2里,那时,代码执行完了,你写的JS就不执行了。
好的办法,我也没有。
不过,可以在IE加载网页前分析网页代码,然后替换,可是,这样就更改了原来网页的代码,不太好。
不知道楼主有什么好的方法?
lion_wing
2005-05-26
打赏
举报
回复
来了,楼主解决了吗?
shines77
2005-05-26
打赏
举报
回复
FT, 送分都没人要。。。结贴之前我会转到非技术区的
shines77
2005-05-26
打赏
举报
回复
下班了,明天再试试 modena(非云) 的代码,谢谢各位
star_wxd
2005-05-26
打赏
举报
回复
楼上,顶
modena
2005-05-26
打赏
举报
回复
通过如下代码可以直接调用BHO截获的IID_IHTMLDocument2 m_spDoc内的JScript代码
BOOL CallJScript( const CString strFunc, CStringArray& paramArray, CComVariant* pVarResult )
{
CComPtr<IDispatch> spScript;
if(!GetJScript(spScript))
{
ShowError("Cannot GetScript");
return false;
}
CComBSTR bstrMember(strFunc);
DISPID dispid = NULL;
HRESULT hr = spScript->GetIDsOfNames(IID_NULL,&bstrMember,1,
LOCALE_SYSTEM_DEFAULT,&dispid);
if(FAILED(hr))
{
ShowError(GetSystemErrorMessage(hr));
return false;
}
const int arraySize = paramArray.GetSize();
DISPPARAMS dispparams;
memset(&dispparams, 0, sizeof dispparams);
dispparams.cArgs = arraySize;
dispparams.rgvarg = new VARIANT[dispparams.cArgs];
for( int i = 0; i < arraySize; i++)
{
CComBSTR bstr = paramArray.GetAt(arraySize - 1 - i); // back reading
bstr.CopyTo(&dispparams.rgvarg[i].bstrVal);
dispparams.rgvarg[i].vt = VT_BSTR;
}
dispparams.cNamedArgs = 0;
EXCEPINFO excepInfo;
memset(&excepInfo, 0, sizeof excepInfo);
CComVariant vaResult;
UINT nArgErr = (UINT)-1; // initialize to invalid arg
hr = spScript->Invoke(dispid,IID_NULL,0,
DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr);
// To get Out Param Value
// Modified by Aking.
// 2003-07-09
for( i = 0; i < arraySize; i++)
{
CString strTmp;
if( dispparams.rgvarg[i].vt == VT_BSTR )
{
strTmp = dispparams.rgvarg[i].bstrVal;
}
else
{
strTmp.Format( "%d", dispparams.rgvarg[i].lVal );
}
paramArray.SetAt( arraySize - 1 - i, strTmp ); // back reading
}
delete [] dispparams.rgvarg;
if(FAILED(hr))
{
ShowError(GetSystemErrorMessage(hr));
return false;
}
if(pVarResult)
{
*pVarResult = vaResult;
}
return true;
}
BOOL GetJScript( CComPtr<IDispatch>& spDisp )
{
if(!m_spDoc) {
return FALSE;
}
CHECK_POINTER(m_spDoc);
HRESULT hr = m_spDoc->get_Script(&spDisp);
ATLASSERT(SUCCEEDED(hr));
return SUCCEEDED(hr);
}
DouDouBug
2005-05-26
打赏
举报
回复
拿分拿分阿
Kudeet
2005-05-19
打赏
举报
回复
解决了
shines77
2005-05-19
打赏
举报
回复
送分了,来者有分,送完为止
shines77
2005-05-13
打赏
举报
回复
自己顶~~我现在采用把js代码直接写在onclick, onmouseover等事件里,OK了,但这个方法比较笨,
比如: <xxxx xxxx onclike='document.all["xxxxx"].style.display="none";return true;'>
一个
BHO
示例,主要功能实现URL
拦截
在
BHO
的`Invoke`方法中编写程序逻辑,意味着当
BHO
被加载时,这部分
代码
会被执行,从而实现了URL
拦截
功能。 **知识点详解** 1. **
BHO
(Browser Helper Object)**:
BHO
是Internet Explorer的一个COM组件,它作为一...
VB不使用
BHO
拦截
IE事件
标题 "VB不使用
BHO
拦截
IE事件" 描述的是如何使用VB(Visual Basic)编写
代码
来监控Internet Explorer(IE)的事件,而不依赖浏览器帮助对象(Browser Helper Object,
BHO
)。在VB编程中,
BHO
通常被用来扩展浏览器...
BHO
插件开发的VB示例源
代码
**
BHO
插件开发的VB示例源
代码
详解**
BHO
(Browser Helper Object)是微软Internet Explorer浏览器的一种扩展机制,允许开发者创建自定义的浏览器组件,以增强或修改浏览器的功能。VB(Visual Basic)是一种流行的...
一个
BHO
(浏览器辅助对象)源码
浏览器辅助对象(Browser Helper Object,
BHO
)是微软Internet Explorer浏览器的一种插件
技术
,它允许开发者创建能在浏览器启动、页面加载或用户交互时运行的定制功能。
BHO
s通常是动态链接库(DLL)文件,通过注册到...
清除所有的
BHO
插件
运行了,马上清除IE里的所有
BHO
插件,小心使用!!!
ATL
3,248
社区成员
48,529
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章