标题:再来一个VFP操控IE的问题,请大佬们赐教!
只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 10楼 qiuxingce
试试在 NewWindow3 事件中处理新建窗口问题,如:
of = CREATEOBJECT("webForm")
of.show
READ EVENTS
CLEAR ALL
RETURN

DEFINE CLASS webForm AS Form
    ShowWindow = 2
    WindowState = 2
    bLogin = .T.
    ADD OBJECT WB AS Olecontrol WITH Width=this.width,Height=this.height,Anchor=15,OleClass="Shell.Explorer.2",Visible=.T.
    PROCEDURE UnLoad
        CLEAR EVENTS
    ENDPROC
    PROCEDURE Init
        this.WB.Silent = .T.
        this.WB.Navigate("https://tjebook.)
    ENDPROC
    PROCEDURE WB.NewWindow3(ppdisp, cancel, dwflags, bstrurlcontext, bstrurl)
        cancel = .T.   && 禁止新窗口
        ppdisp = this  && 在当前窗口打开
        **IF (dwFlags == 6)
          this.Navigate(bstrurl)
          this.SetFocus
        **ENDIF
    ENDPROC   
ENDDEFINE
2020-05-22 12:09
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
经实际运行测试,吹版的办法实现了预期,
点击课本链接,打开课本内容没有出现新的窗口,显示在了咱们的表单中,只是这个网站有新版和旧版之分,咱们这个办法会迫使网站自动切换到旧版模式运行,此时刚刚登录的账号和密码验证就失效了,又出现了旧版网站的用户验证界面,需要重新输入用户名密码
有没有一个办法,点击课本链接时允许打开新的IE窗口(不在咱们的表单中),但是让新的IE窗口自动位于最上方,目前我把咱们的表单设置为ALWAYSONTOP=.T.,目的是挡住下方的任务栏,就是防止学生通过任务栏和开始按钮去打开别的东西,但这样就把新出现的IE窗口挡住了。
2020-05-22 15:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501719-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014854 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved