社区
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,不够再说
...全文
359
13
打赏
收藏
高分求教:BHO技术拦截Flash,但写入的js代码无效!
使用IE的BHO技术,Browser Helper Object写的Flash拦截,原来的Flash代码已经被替换成我定义的HTML了,但写入的JS代码(JavaScript)代码却无效,好像被过滤或没有生效 在事件OnDocumentComplete, OnNavigateComplete2完成后替换原来的Flash Code 不知道该如何让写入的JS生效,多指教。谢谢~ 呵呵,不好意思,高分也只能一次给200,不够再说
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
拦截
用VC做的IE插件,采用ATL工程,插入BHO 在INVOke中写程序。
VB不使用
BHO
拦截
IE事件
用VB编写的IE事件监控
代码
,前一个
代码
有问题,本
代码
已作修正。
BHO
插件开发的VB示例源
代码
BHO
插件开发的VB示例源
代码
是学习
BHO
的好资料。可以参考下
BHO
实现
拦截
IE地址,URL重定向
BHO
实现
拦截
IE地址,URL重定向,比如输入baidu.com,跳转到hao123.网上的例子都不全,我这个是完全可以运行的
一个
BHO
(浏览器辅助对象)源码
BHO
源码 C++ 浏览器 这是一个例子
ATL
3,248
社区成员
48,530
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章