完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖被以下淘专辑推荐:
|
|
相关推荐
8 个讨论
|
|
|
在labview官方论坛中,我找到一个issue有关于在labview中使用容器ActiveX或者com+以浏览器方式打开网页,并且调用网页中的JavaScript函数,或者获取网页中的数据。在中文社区中基本没见到关于JavaScript调用的详细的帖子,我给自己做个备忘,也方便他人吧。labview中先要了解事件处理架构,代码如下:(引用于:exampleConnectivityActiveXActiveX Event Callback.vi)
注意:vi reference is a strict VI reference to the callback VI. vi reference must match exactly the data from the registered event and the callback VI must be reentrant.上面这段话:首先是严格的类型引用(可以不严格,只是会非常麻烦,很多时候逻辑上没得问题,就是报错,应该是框架要求的这个属性.)labview中注册ActiveX控件的回调事件处理Vi或函数其次必须满足事件响应数据(我理解是事件通用数据变体varints to data事件返回变体用户参数等,变体可以理解为void类型的指针,显式转换为什么数据类型读取为什么样的数据.),最后必须是重载的SubVi.这里的三操作步骤如下图: 图一是vi的严格类型引用设置:
图一 图二是创建SubVi满足事件回调Vi的形参和返回值接口(Vi完全可以理解为一个函数嘛)
这里注意创建了之后可以打开,相对应的前面板和程序面板,此时没有保存可手动保存一下,并且它的属性是设置的reentrants. 图三是设置Vi的属性为可重载(官方帮助说明:labview的vi重载说明-英文有中文的但是我没保存链接,时间充裕可以找哈)
到这里基本知识解决了.其次就是怎么调用JavaScript function了.可以参考下面那个链接,我就是这么学习过来的.一个错误关于labview调用JavaScript function出错 第一步找ActiveX容器的细节问题如下:
第二步后面板的事件注册细节(注册事件最好要先于navigate2方法,我就因为先navigate2了然后经过定时循环结构中的refresh方法后再去注册回调SubVi,然后重来不回调我的SubVi,程序编译调试啥都没问题,就是运行结果不对.最后还是从本文第一幅图发现这里有蹊跷!!!)
第三步SubVi的细节
最后这个图里关键的地方在第一个顺序框中.为此我放大的图片上来.并给出一个字符串"javascript:alter(10)"调用alter函数输出数值10.这个就给我们在浏览器的URL栏输入相对应的JavaScript调用命令一个道理.哎亏我还是半个前端,这都没想到.白忙活两个星期才解决这么简单的一个问题. 这里也打开一扇门,可以去用其他对象.不一定是webbrowser对象了.前面图片中把对象说成类了,我就不回头改了,都深夜1:32了.睡了. |
|
|
|
|
|
|
|
|
azwesxrdctfvybguhnjm
|
|
|
|
|
|
|
|
|
学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习
|
|
|
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
请教大神,在labview里面对实时扫描资源中的C系列模块NI9234进行配置发生非预期错误
1644 浏览 0 评论
1562 浏览 0 评论
LABVIEW 2023 Q1调用python后一直报错1671
1939 浏览 2 评论
5060 浏览 3 评论
4979 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 10:50 , Processed in 1.286534 second(s), Total 63, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3716