开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 285|回复: 3
收起左侧

[易语言] 如何通过js/html按钮载入到窗口1里面?

[复制链接]
结帖率:58% (11/19)
发表于 2025-3-11 20:52:20 | 显示全部楼层 |阅读模式   山东省济宁市
10精币
通过网页html按钮载入到指定的窗口里


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:0% (0/1)
发表于 2025-3-11 21:21:10 | 显示全部楼层   上海市上海市
你是想问,如何通过js/html按钮载入到易语言的窗口1里面吗
[color=rgba(0, 0, 0, 0.9)]要通过 JavaScript 和 HTML 按钮与易语言(EPL)的窗口交互,通常需要借助 ​Web浏览器控件 和 ​COM对象通信 技术。以下是分步实现方案:
步骤 1:在易语言中嵌入 Web 浏览器控件
  • 创建窗口并添加浏览器控件
    在易语言窗口中插入 WebBrowser 控件(如系统自带的 WebBrowser 或第三方浏览器组件)。
    easy
    [color=rgba(0, 0, 0, 0.6)]


      
    // 易语言代码示例
    窗口程序集名保 留  保 留备 注
    窗口程序集1   
    子程序名返回值类型公开备 注
    _窗口1_创建完毕  
    [color=rgba (0, 0, 0, 0.9)][backcolor=rgb (252, 252, 252)][font=inherit]WebBrowser1.跳转 (“res://index.html”, , , , )  ' 加载内嵌HTML资源

    注册COM对象供JS调用[color=rgba(0, 0, 0, 0.9)]
  • 创建一个易语言类模块,通过COM接口暴露给JavaScript。


步骤 2:编写 HTML/JavaScript 交互代码html
[color=rgba(0, 0, 0, 0.6)]


[HTML] 纯文本查看 复制代码
<!-- index.html -->
<button>点击加载到易语言窗口</button>

<script>
function sendToEPL() {
    try {
        // 调用易语言暴露的COM对象方法
        window.external.EPL_LoadData("Hello from HTML!");
    } catch (e) {
        alert("请确保在易语言环境中运行");
    }
}
</script>


步骤 3:在易语言中实现COM接口
  • 创建类模块
    easy
    [color=rgba(0, 0, 0, 0.6)]


      
    .类模块 EPL_ComObject
    窗口程序集名保 留  保 留备 注
    (未填写程序集名)   
    变量名类 型数组备 注
    变量名类 型数组备 注
    主窗口窗口1  

    子程序名返回值类型公开备 注
    _初始化  
    主窗口 = 取对象句柄 ()  ' 获取主窗口引用
    子程序名返回值类型公开备 注
    EPL_LoadData逻辑型 
    参数名类 型参考可空数组备 注
    数据文本型
    主窗口.编辑框1.内容 = 数据  ' 将数据传递到窗口1的编辑框
    返回 真

  • 关联浏览器控件与COM对象
    easy
    [color=rgba(0, 0, 0, 0.6)]


      
    子程序名返回值类型公开备 注
    _窗口1_创建完毕  
    WebBrowser1.注册COM对象 (“EPL_ComObject”)  ' 绑定COM对象到浏览器




步骤 4:处理安全设置(重要!)
  • 在IE设置中启用ActiveX
    由于易语言可能使用IE内核,需确保本地脚本可执行:
    • 进入 Internet选项 → 安全 → 自定义级别,启用 ​ActiveX 控件和插件


完整易语言窗口代码示例easy
[color=rgba(0, 0, 0, 0.6)]


  
窗口程序集名保 留  保 留备 注
窗口程序集1   
变量名类 型数组备 注
COM接口EPL_ComObject  

子程序名返回值类型公开备 注
_窗口1_创建完毕  
WebBrowser1.跳转 (“res://index.html”, , , , )
COM接口 = 取对象句柄 ()
WebBrowser1.注册COM对象 (“EPL_ComObject”)
子程序名返回值类型公开备 注
_按钮_处理数据_被单击  
参数名类 型参考可空数组备 注
数据 
编辑框1.内容 = 数据


注意事项
  • 资源嵌入:将HTML文件编译为资源文件(.res),确保程序独立运行。
  • 跨平台限制:此方案仅适用于Windows系统。
  • 安全风险:确保仅在可信环境中启用ActiveX。

替代方案:使用HTTP服务器通信
[color=rgba(0, 0, 0, 0.9)]若需要更复杂的交互,可在易语言中创建本地HTTP服务器,通过JS发送Ajax请求实现双向通信。
javascript
[color=rgba(0, 0, 0, 0.6)]


[JavaScript] 纯文本查看 复制代码
// JS发送POST请求
fetch('http://localhost:8080/update', {
    method: 'POST',
    body: JSON.stringify({data: "Hello"})
});

easy
[color=rgba(0, 0, 0, 0.6)]


  
' 易语言HTTP服务器示例
子程序名返回值类型公开备 注
处理请求  
参数名类 型参考可空数组备 注
请求数据文本型
窗口1.编辑框1.内容 = 请求数据


[color=rgba(0, 0, 0, 0.9)]通过上述方法,即可实现Web界面与易语言桌面应用的无缝交互。
回复

使用道具 举报

结帖率:58% (11/19)

签到天数: 2 天

 楼主| 发表于 2025-3-11 22:48:21 | 显示全部楼层   山东省济宁市
阿狸阿狸 发表于 2025-3-11 21:21
你是想问,如何通过js/html按钮载入到易语言的窗口1里面吗
要通过 JavaScript 和 HTML 按钮与易语 ...

有源吗?铁铁
回复

使用道具 举报

结帖率:100% (10/10)
发表于 2025-3-13 10:40:24 | 显示全部楼层   山西省太原市
找WEB UI 就有这功能呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表