首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何强制执行Onsubmit handler [已结贴,结贴人:ninehoolu]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ninehoolu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-07-14 21:09:15 楼主
    我自己调用表单的submit时候,不和本身网页的行为一样,查了查资料说,submit 不会调用onsubmit handler, 自己fireevent可以做到是吧?但是
    The IHTMLFormElement::submit method does not invoke the onsubmit event handler. Call the onsubmit event handler directly. When using Microsoft Internet Explorer 5.5 and later, you can call the IHTMLDocument4::fireEvent method with a value of onsubmit in the sEvent parameter.
    MSDN上最后一句话,看不懂
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • eduyu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-14 23:24:311楼 得分:10
    对submit button做click操作
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ninehoolu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-15 08:51:422楼 得分:0
    你这种方法,并不能普遍解决这个问题吧,那没有button呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jiangsheng
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-15 08:55:483楼 得分:40
    IHTMLEventObj* eventObject;
    VARIANT empty;
    VariantInit(&empty);
    doc->createEventObject(&empty, &eventObject);

    VARIANT eventref;
    VariantInit(&eventref);
        V_VT(&eventref) = VT_DISPATCH;
        V_DISPATCH(&eventref) = eventObject;

    VARIANT_BOOL cancellable;
    BSTR mouseDown = SysAllocString(L"onmousedown");
    BSTR mouseUp = SysAllocString(L"onmouseup");
    element3->fireEvent(mouseDown, &eventref, &cancellable);
    element3->fireEvent(mouseUp, &eventref, &cancellable);
    SysFreeString(mouseDown);
    SysFreeString(mouseUp);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • eduyu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-15 13:51:234楼 得分:0
    没有button?估计网页设计师打算让用户对着网页来吹口哨提交吧。fireEvent最合适,click也简洁实用。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ninehoolu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-15 21:16:055楼 得分:0
    呵呵,并不是只有button才可以提交。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jameshooo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      4

    发表于:2008-07-15 21:30:106楼 得分:35
    CComVariant v;
    spForm->get_onsubmit(&v);
    if (v.vt==VT_DISPATCH && v.pdispval != NULL)
    {
      v.pdispval->Invoke(0, IID_NULL, ...);
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ninehoolu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-16 16:36:227楼 得分:0
    想用胡兄,这种方法,但是Invoke里面的参数我不知道咋添~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jiangsheng
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-17 23:29:498楼 得分:15
    要自己createEventObject,不然直接调用事件处理函数的话,window.event会没有值
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ninehoolu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-22 17:51:159楼 得分:0
    我看MSDN上说的,createEventObject,fireEvent都用得IHTMLDocument4这个接口的,但是看起来,并没有达到调用Onsubmit的效果
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ninehoolu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-23 09:46:0410楼 得分:0
    问题已经解决,谢谢各位的支持,呵呵
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved