精易论坛

标题: 火山PC中 MFC Edge模块打开网页并取返回的网页文本返回为NULL [打印本页]

作者: 543010790    时间: 昨天 09:48
标题: 火山PC中 MFC Edge模块打开网页并取返回的网页文本返回为NULL
火山PC中 MFC Edge模块打开网页并取返回的网页文本返回为NULL
但是等按钮1点击后,点击按钮2就又可以获取到网页文本了。请问如果只用一个按钮即打开又获取文本怎么实现?





<火山程序 类型 = "通常" 版本 = 1 />

包 Edge.CDQbay

类 启动类 <公开 基础类 = 窗口程序类>
{
    方法 启动方法 <公开 类型 = 整数>
    {
        变量 主界面 <静态 类型 = 主界面>
        关注屏幕DPI (真)
        主界面.创建主窗口 (, , , , )
        返回 (1)
    }
}

类 主界面 <公开 基础类 = 窗口 @视窗.布局 = "client_size = \"971, 657\"">
{
    变量 基本信息cha询 <类型 = 按钮 隐藏值属性 = "0" @视窗.布局 = "id = 101\r\npos = \"17, 13, 134, 83\"" 标题 = "基本信息cha询">

    #

    方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
    参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
        变量 基本信息 <静态 类型 = 基本信息窗口>
        如果 (来源对象 == 基本信息cha询)
        {
            基本信息.创建窗口 (, , , , )
        }
        返回 (0)
    }

    方法 主界面_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件.">
    参数 来源对象 <类型 = 主界面 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
        返回 (0)
    }
}

类 基本信息窗口 <公开 基础类 = 窗口 @视窗.布局 = "client_size = \"770, 558\"">
{
    变量 按钮2 <类型 = 按钮 折叠2 隐藏值属性 = "0" @视窗.布局 = "id = 101\r\npos = \"375, 32, 83, 26\"" 标题 = "获取网页文本">
    变量 按钮1 <类型 = 按钮 折叠2 隐藏值属性 = "0" @视窗.布局 = "id = 102\r\npos = \"254, 32, 96, 26\"" 标题 = "打开网页并获取">
    变量 Edge浏览框1 <类型 = Edge浏览框 折叠2 隐藏值属性 = "0" @视窗.布局 = "id = 103\r\npos = \"23, 77, 474, 390\""
            标题 = "Edge浏览框1">
    变量 编辑框1 <类型 = 编辑框 折叠2 隐藏值属性 = "0" @视窗.布局 = "id = 104\r\npos = \"17, 6, 224, 64\"" 标题 = "编辑框1">

    #

    方法 基本信息窗口_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件.">
    参数 来源对象 <类型 = 基本信息窗口 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
        返回 (0)
    }

    方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
    参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
        如果 (来源对象 == 按钮2)
        {
            变量 返回文本 <类型 = 文本型>
            返回文本 = Edge浏览框1.取网页文本 (, )
            调试输出 (返回文本)
        }
        如果 (来源对象 == 按钮1)
        {
            Edge浏览框1.链接地址 = "www.baidu.com"
            挂接事件 (Edge浏览框1, 0)
        }
        返回 (0)
    }

    方法 Edge浏览框_载入完毕 <接收事件 类型 = 整数 注释 = "当将要显示在浏览器内的文档被载入完毕后触发本事件">
    参数 来源对象 <类型 = Edge浏览框 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    参数 状态码 <类型 = Edge错误码 注释 = "可根据该值判断产生错误时的错误原因,如果该值为-1,则表示载入成功.">
    参数 导航ID <类型 = 长整数>
    参数 框架指针 <类型 = 变整数 注释 = "其值不为0时,表示事件由框架引发而产生.通过\"取框架\"方法得到Edge框架.">
    参数 HTTP状态码 <类型 = 整数 注释 = "如果导航涉及HTTP请求,则导航的状态代码.">
    {
        如果 (来源对象 == Edge浏览框1)
        {
            变量 返回文本 <类型 = 文本型>
            如果 (标记值 == 0)
            {
                Edge浏览框1.链接地址 = "www.baidu.com"
                返回文本 = Edge浏览框1.取网页文本 (, )
                调试输出 (返回文本)
            }

        }
        返回 (0)
    }
}



作者: qq793359277    时间: 昨天 17:22
在事件中要异步操作

<火山程序 类型 = "通常" 版本 = 1 />

方法 Edge浏览框_载入完毕 <接收事件 类型 = 整数 注释 = "当将要显示在浏览器内的文档被载入完毕后触发本事件">
参数 来源对象 <类型 = Edge浏览框 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 状态码 <类型 = Edge错误码 注释 = "可根据该值判断产生错误时的错误原因,如果该值为-1,则表示载入成功.">
参数 导航ID <类型 = 长整数>
参数 框架指针 <类型 = 变整数 注释 = "其值不为0时,表示事件由框架引发而产生.通过\"取框架\"方法得到Edge框架.">
参数 HTTP状态码 <类型 = 整数 注释 = "如果导航涉及HTTP请求,则导航的状态代码.">
{
    如果 (来源对象 == Edge浏览框1)
    {
        调试输出 ("Edge浏览框_载入完毕")
        Edge浏览框1.运行JS_异步 ("document.documentElement.outerText;", 1)
    }
    返回 (0)
}

方法 Edge浏览框_JS执行完成 <接收事件 类型 = 整数 注释 = "执行\"运行JS\"方法后的回调函数.">
参数 来源对象 <类型 = Edge浏览框 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 返回码 <类型 = 整数 注释 = "如果该值为0,表示操作成功,否则表示发生错误时的错误码.英文名为HRESULT类型.">
参数 执行结果 <类型 = 文本型 注释 = "运行JS后所得到的结果,无结果返回时为null.">
参数 框架指针 <类型 = 变整数 注释 = "其值不为0时,表示事件由框架引发而产生.通过\"取框架\"方法得到Edge框架.">
参数 用户数据 <类型 = 变整数 注释 = "\"运行JS\"方法时提供的用户自定义数据">
{
    如果 (来源对象 == Edge浏览框1)
    {
        如果 (用户数据 == 1)
        {
            调试输出 ("获取网页文本")
            调试输出 (执行结果)



        }
    }
    返回 (0)
}





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4