• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 122
发新话题 回复该主题

[源码] 利用Web插件的RunJS命令完美解决Frame框架网页元素操作失败问题+... [复制链接]

1#
本帖最后由 q97012791 于 2014-10-30 03:42 编辑

这些命令我放在命令库里使用的,当然大家可以直接使用
暂时写了这几条常用的RunJS命令,如果有需要添加的命令,请回帖说明或加QQ联系
PS: 当然JS的强大,远远不止这些,我也不可能把整个JS的所有功能全做出来

欢迎大家提出想要增加的命令,帮助其他需要的人
如有问题,联系QQ97012791,注明 RunJS
按键精灵接单群 6820131
例子放在帖子最下方

WinHttp中文版命令库传送门(Post专用):
showtopic.aspx?topicid=547286&forumpage=1&page=1

WQMJS获取当前网页源码
  1. Function WQMJS获取当前网页源码()
  2. Txt = Plugin.Web.RunJS(1, "var x=document.documentElement.outerHTML;return x")
  3. WQMJS获取当前网页源码 = Txt
  4. End Function
复制代码


WQMJS获取框架网页源码_索引
  1. Function WQMJS获取框架网页源码_索引(框架索引)
  2. Txt = Plugin.Web.RunJS(1, "return document.frames[" & 框架索引 & "].document.documentElement.outerHTML")
  3. WQMJS获取框架网页源码_索引 = Txt
  4. End Function
复制代码



WQMJS获取框架网页源码_ID
  1. Function WQMJS获取框架网页源码_ID(框架ID)
  2. Txt = "var x=document.getElementById('" & 框架ID & "').contentWindow.document.body.innerHTML; return x"
  3. WQMJS获取框架网页源码_ID = Plugin.Web.RunJS(1, Txt)
  4. End Function
复制代码



WQMJS刷新当前网页
  1. Sub WQMJS刷新当前网页()
  2. Call Plugin.Web.RunJS(0,"location.reload()")
  3. End Sub
复制代码




WQMJS获取元素innerHTML
  1. Function WQMJS获取元素innerHTML(元素ID)
  2. Value = "var x=document.getElementById('" & 元素ID & "').innerHTML;return x;"
  3. WQMJS获取元素innerHTML = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码




WQMJS获取框架innerHTML
  1. Function WQMJS获取框架innerHTML(框架索引, 元素ID)
  2. Value = "var x=document.frames[" & 框架索引 & "].document.getElementById('" & 元素ID & "').innerHTML;return x;"
  3. WQMJS获取框架innerHTML = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码




WQMJS获取元素坐标
  1. Function WQMJS获取元素坐标(元素ID)
  2. Dim x
  3. //获取元素的纵坐标
  4. x = "function getTop(e){ " & Vbcrlf
  5. x = x & "var offset=e.offsetTop; " & Vbcrlf
  6. x = x & "if(e.offsetParent!=null) offset+=getTop(e.offsetParent); " & Vbcrlf
  7. x = x & "return offset; " & Vbcrlf
  8. x = x & "} " & Vbcrlf
  9. //获取元素的横坐标
  10. x = x & "function getLeft(e){ " & Vbcrlf
  11. x = x & "var offset=e.offsetLeft; " & Vbcrlf
  12. x = x & "if(e.offsetParent!=null) offset+=getLeft(e.offsetParent); " & Vbcrlf
  13. x = x & "return offset; " & Vbcrlf
  14. x = x & "} " & Vbcrlf
  15. //输出元素坐标
  16. x = x & "var x=document.getElementById('" & 元素ID & "'); " & Vbcrlf
  17. x = x & "return getTop(x)+'|'+getLeft(x);" & Vbcrlf
  18. WQMJS获取元素坐标 = Plugin.Web.RunJS(1,x)
  19. End Function
复制代码



WQMJS元素获得焦点
  1. Sub WQMJS元素获得焦点(元素ID)
  2. Call Plugin.Web.RunJS(0, "document.getElementById('" & 元素ID & "').focus();")
  3. End Sub
复制代码



WQMJS元素失去焦点
  1. Sub WQMJS元素失去焦点(元素ID)
  2. Call Plugin.Web.RunJS(0, "document.getElementById('" & 元素ID & "').blur();")
  3. End Sub
复制代码



WQMJS获取元素Value
  1. Function WQMJS获取元素Value(元素ID)
  2. Value = "var x=document.getElementById('" & 元素ID & "').value;return x;"
  3. WQMJS获取元素Value = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码


WQMJS获取框架Value
  1. Function WQMJS获取框架Value(框架索引, 元素ID)
  2. Value = "var x=document.frames[" & 框架索引 & "].document.getElementById('" & 元素ID & "').value;return x;"
  3. WQMJS获取框架Value = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码


WQMJS获取框架Value_Ex
  1. Function WQMJS获取框架Value_Ex(框架Name, 元素ID)
  2. Value = "var x=document.frames['" & 框架Name & "'].document.getElementsByName('" & 元素ID & "').value;return x;"
  3. WQMJS获取框架Value_Ex = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码


WQMJS设置Value
  1. Sub WQMJS设置Value(元素ID, 值)
  2. Value = "document.getElementById('" + 元素ID + "').value=" + "'" + 值 + "'"
  3. Call Plugin.Web.RunJS(0, Value)
  4. End Sub
复制代码


WQMJS设置NameValue
  1. Sub WQMJS设置NameValue(元素Name, 元素索引, 值)
  2. Value = "document.getElementsByName('" & 元素Name & "')[" & 元素索引 & "].value='" & 值 & "'"
  3. Call Plugin.Web.RunJS(0, Value)
  4. End Sub
复制代码


WQMJS设置框架Value
  1. Sub WQMJS设置框架NameValue(框架索引, 元素Name, 元素索引, 值)
  2. Value = "document.frames[" & 框架索引 & "].document.getElementsByName('" & 元素Name & "')[" & 元素索引 & "].value='" & 值 & "'"
  3. Call Plugin.Web.RunJS(0, Value)
  4. End Sub
复制代码


WQMJS设置框架Value_Ex
  1. Sub WQMJS设置框架NameValue_Ex(框架Name, 元素Name, 元素索引, 值)
  2. Value = "document.frames['" & 框架Name & "'].document.getElementsByName('" & 元素Name & "')[" & 元素索引 & "].value='" & 值 & "'"
  3. Call Plugin.Web.RunJS(0, Value)
  4. End Sub
复制代码


WQMJS获取框架Name数量
  1. Function WQMJS获取框架Name数量(框架索引, 元素Name)
  2. Value = "var x=document.frames[" & 框架索引 & "].document.getElementsByName('" & Cstr(元素Name) & "').length;return x;"
  3. WQMJS获取框架Name数量 = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码


WQMJS获取框架Name数量_Ex
  1. Function WQMJS获取框架Name数量_Ex(框架Name, 元素Name)
  2. Value = "var x=document.frames[""" & 框架Name & """].document.getElementsByName('" & Cstr(元素Name) & "').length;return x;"
  3. WQMJS获取框架Name数量_Ex = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码


WQMJS获取框架NameValue
  1. Function WQMJS获取框架NameValue(框架索引, 元素Name, 元素索引)
  2. Value = "var x=document.frames[" & 框架索引 & "].document.getElementsByName('" & 元素Name & "')[" & 元素索引 & "].value;return x;"
  3. WQMJS获取框架NameValue = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码


WQMJS获取框架NameValue
  1. Function WQMJS获取框架NameValue_Ex(框架Name, 元素Name, 元素索引)
  2. Value = "var x=document.frames['" & 框架Name & "'].document.getElementsByName('" & 元素Name & "')[" & 元素索引 & "].value;return x;"
  3. WQMJS获取框架NameValue_Ex = Plugin.Web.RunJS(1, Value)
  4. End Function
复制代码


WQMJS设置复选框 值: 0=未选中 1=选中
  1. Sub WQMJS设置复选框(元素ID, 值)
  2. If 值 = 0 Then : 值 = "False" : Else : 值 = "True" : End If
  3. Checked = "document.getElementById('" + 元素ID + "').checked=" + "'" + 值 + "'"
  4. Call Plugin.Web.RunJS(0, Checked)
  5. End Sub
复制代码



WQMJS设置框架Name复选框 值: 0=未选中 1=选中

  1. If 值 = 0 Then : 值 = "False" : Else : 值 = "True" : End If
  2. Checked = "document.frames[" & 框架索引 & "].document.getElementsByName('" & 元素Name & "')[" & 元素索引 & "].checked=" + "'" + 值 + "'"
  3. Call Plugin.Web.RunJS(0, Checked)
复制代码



WQMJS设置框架Name复选框_Ex 值: 0=未选中 1=选中
  1. Sub WQMJS设置框架Name复选框_Ex(框架Name, 元素Name, 元素索引, 值)
  2. If 值 = 0 Then : 值 = "False" : Else : 值 = "True" : End If
  3. Checked = "document.frames['" & 框架Name & "'].document.getElementsByName('" & 元素Name & "')[" & 元素索引 & "].checked=" + "'" + 值 + "'"
  4. Call Plugin.Web.RunJS(0, Checked)
  5. End Sub
复制代码


WQMJS点击元素
  1. Sub WQMJS点击元素(元素ID)
  2. Click = "document.getElementById('" + 元素ID + "').click()"
  3. Call Plugin.Web.RunJS(0, Click)
  4. End Sub
复制代码


WQMJS点击Name
  1. Sub WQMJS点击元素Name(元素Name, 元素索引)
  2. Click = "document.getElementsByName('" & 元素Name & "')[" & 元素索引 & "].click()"
  3. Call Plugin.Web.RunJS(0, Click)
  4. End Sub
复制代码


WQMJS点击TagName
  1. Sub WQMJS点击TagName(标签名称, 元素索引)
  2. Click = "document.getElementsByTagName(""" & 标签名称 & """)[" & 元素索引 & "].click()"
  3. Call Plugin.Web.RunJS(0, Click)
  4. End Sub
复制代码


WQMJS点击框架元素
  1. Sub WQMJS点击框架元素(框架索引, 元素ID)
  2. Click = "document.frames[" & 框架索引 & "].document.getElementById('" + 元素ID + "').click()"
  3. Call Plugin.Web.RunJS(0, Click)
  4. End Sub
复制代码


WQMJS设置框架Value
  1. Sub WQMJS设置框架Value(框架索引, 元素ID, 值)
  2. Value = "document.frames[" & 框架索引 & "].document.getElementById('" + 元素ID + "').value=" + "'" + 值 + "'"
  3. Call Plugin.Web.RunJS(0, Value)
  4. End Sub
复制代码


WQMJS点击框架TagName
  1. Sub WQMJS点击框架TagName(框架索引, 标签名称, 元素索引)
  2. Click = "document.frames[" & 框架索引 & "].document.getElementsByTagName(""" & 标签名称 & """)[" & 元素索引 & "].click()"
  3. Call Plugin.Web.RunJS(0, Click)
  4. End Sub
复制代码



WQMJS设置下拉框
  1. Sub WQMJS设置下拉框(元素ID, 值)
  2. Value = "var mySelect=document.getElementById(""" & 元素ID & """)" & vbCrlf
  3. Value = Value & "mySelect.options[mySelect.selectedIndex].text=""" & 值 & """"
  4. Call Plugin.Web.RunJS(0, Value)
  5. End Sub
复制代码


//==============================================================//
下面这里是例子

例子1: 百度搜索 "按键精灵论坛"
  1. Call Plugin.Web.Bind("wqm.exe") : Delay 1000
  2. Call Plugin.Web.Go("www.baidu.com") : Delay 1000
  3. Call WQMJS设置Value("kw", "按键精灵论坛") : Delay 500
  4. Call WQMJS点击元素("su") : MessageBox "测试结束"
复制代码
例子2: 按键精灵论坛登录
  1. Call Plugin.Web.Bind("wqm.exe") : Delay 1000
  2. Call Plugin.Web.Go("bbs.anjian.com") : Delay 1000
  3. Call WQMJS点击TagName("button", 0) : Delay 1000
  4. Call WQMJS设置NameValue("username", 0, "账号") : Delay 200
  5. Call WQMJS设置NameValue("password", 0, "密码") : Delay 200
  6. Call WQMJS点击元素Name("loginsubmit", 0) : MessageBox "测试结束"
复制代码
例子3: 淘宝网页登陆
  1. Call Plugin.Web.Bind("wqm.exe") : Delay 1000
  2. Call Plugin.Web.Go("login.taobao.com") : Delay 1000
  3. Call WQMJS设置NameValue("TPL_username", 0, "账号") : Delay 200
  4. Call WQMJS设置NameValue("TPL_password", 0, "密码") : Delay 200
  5. Call WQMJS点击元素("J_SubmitStatic"): MessageBox "测试结束"
复制代码
例子4: 126邮箱账号注册
  1. Call Plugin.Web.Bind("wqm.exe") : Delay 1000
  2. Call Plugin.Web.Go("reg.email.163.com") : Delay 1000
  3. Call Plugin.Web.RunJS(0, "_Global.main.turnOn()") : Delay 1000
  4. Call WQMJS设置下拉框("mainDomainSelect", "126.com") : Delay 200
  5. Call WQMJS设置Value("nameIpt", "账号") : Delay 200
  6. Call WQMJS设置Value("mainPwdIpt", "密码") : Delay 200
  7. Call WQMJS设置Value("mainCfmPwdIpt", "确认密码") : Delay 200
  8. Call WQMJS设置Value("vcodeIpt", "验证码") : Delay 200
  9. Call WQMJS点击元素("mainRegA"): MessageBox "测试结束"
复制代码

    已有8评分我要评分查看所有评分

    <font size="4"><font color="Red"><strong>承接:各类游戏辅助,网页,Post,办公脚本,验证码,注册机,手机脚本,插件定制,软件定制等业务!<br />
    QQ:97012791 接单群:6820131</strong></font></font>
    2#

    看看。。。。。好东西就要回复

    3#

    学习学习

    4#

    问一下楼主,若框架下有一个照片控件,如何能把图片的链接地址提取出来

    5#

    政和百兴 发表于 2014-2-19 07:11
    问一下楼主,若框架下有一个照片控件,如何能把图片的链接地址提取出来


    地址发上来看看?

    <font size="4"><font color="Red"><strong>承接:各类游戏辅助,网页,Post,办公脚本,验证码,注册机,手机脚本,插件定制,软件定制等业务!<br />
    QQ:97012791 接单群:6820131</strong></font></font>
    6#

    q97012791 发表于 2014-2-19 07:12
    地址发上来看看?


    是单位的内部网页,晚上下班后把代码给你

    7#

    觀看學習

    8#


    觀看學習

    9#

    学习学习再学习!!

    10#

    好好学习, 天天向上

    11#

    顶你一下

    有问题就→
    12#

    顶一下1

    13#


    14#

    dsgdsgjdsgdsgndsgdsg

    15#

    顶下啊,好东西啊!

    16#

    好厉害啊!值得学习,

    17#


    18#


        
        

    问一下如何把这个控件里面的图片路径提取出来

    19#

    q97012791 发表于 2014-2-19 07:12
    地址发上来看看?






    问一下如何把这个控件里面的图片路径提取出来

    20#

    本帖最后由 q97012791 于 2014-2-19 19:46 编辑

    政和百兴 发表于 2014-2-19 19:13
    问一下如何把这个控件里面的图片路径提取出来
    1. path = Plugin.Web.RunJS("Var x=""/jwzh/WebImgXCtrl.ocx"";return x;")
    2. TracePrint path
    复制代码
    试试?发网址过来才知道,这样测试不出来的,这样返回的应该不是路径,是一个对象

    <font size="4"><font color="Red"><strong>承接:各类游戏辅助,网页,Post,办公脚本,验证码,注册机,手机脚本,插件定制,软件定制等业务!<br />
    QQ:97012791 接单群:6820131</strong></font></font>
    发新话题 回复该主题