开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 5357|回复: 20
收起左侧

[改进提议] 普通填表一些优化…

[复制链接]
发表于 2013-9-8 06:59:38 | 显示全部楼层 |阅读模式   英国
网页_屏蔽信息框
  1. * 更改方面有几点,首先是 confirm 默认自动回复 false, 防止原版脚本调用这个函数就直接提示脚本错误;但是缺点也有,用户可能需要某个功能但是被提示压下去了… 所以我还加了两个函数来自动回应。
  2. * prompt 文本输入提示也该进了: 还是主要防止提示代码出错,因此将默认返回第二个参数(也就是脚本传输的预设值),如果传参不自带则返回空文本。
  3. + 屏蔽了 window.open 这个弹窗函数。
复制代码
[e].版本 2

.子程序 网页_屏蔽信息框, , 公开, 直接无视网页上弹出来的信息框和对话框

网页_执行脚本 (“with(window){open=alert=confirm=showModalDialog=function(){return!1};prompt=function(a,b){return b||''}}”)

.子程序 网页_自动回复_confirm, , 公开, 直接无视网页上弹出来的信息框和对话框
.参数 回复逻辑值, 逻辑型, 可空, 自动回复的逻辑值

网页_执行脚本 (“with(window){confirm=function(){return!” + 到文本 (选择 (回复逻辑值, 0, 1)) + “}}”)

.子程序 网页_自动回复_prompt, , 公开, 直接无视网页上弹出来的信息框和对话框
.参数 回复文本, 文本型, 可空, 默认为回复默认内容

网页_执行脚本 (“with(window){prompt=function(a,b){return ” + 选择 (是否为空 (回复文本), “b”, “'” + 子文本替换 (回复文本, “'”, “\'”, , , 真)) + “'}}”)[/e]


下面这些主要是一些性能上可能的优化:

网页_滚动条固定、网页_滚动条取位置、网页_滚动条取高宽
[e].版本 2

.子程序 网页_滚动条固定, , 公开, 控制浏览器滚动条上下滑动。
.参数 横向位置, 整数型, 可空, 横向位置
.参数 纵向位置, 整数型, 可空, 纵向位置
.局部变量 dE, 对象

dE = 集_网页文档.读对象型属性 (“documentElement”, )
.如果真 (是否为空 (横向位置) = 假)
    dE.写属性 (“scrollTop”, 纵向位置)
.如果真结束
.如果真 (是否为空 (横向位置) = 假)
    dE.写属性 (“scrollLeft”, 横向位置)
.如果真结束

.子程序 网页_滚动条取位置, , 公开, 取滚动条横纵向位置。
.参数 横向位置, 整数型, 参考 可空, 用于存放浏览器滚动横向的位置。
.参数 纵向位置, 整数型, 参考 可空, 用于存放浏览器滚动纵向的位置。
.局部变量 dE, 对象

dE = 集_网页文档.读对象型属性 (“documentElement”, )
纵向位置 = dE.读数值属性 (“scrollTop”, )
横向位置 = dE.读数值属性 (“scrollLeft”, )


.子程序 网页_滚动条取高宽, , 公开, 取出浏览器滚动条的高宽
.参数 滚动条高度, 整数型, 参考 可空, 用于存放浏览器滚动条高度的变量。
.参数 滚动条宽度, 整数型, 参考 可空, 用于存放浏览器滚动条宽度的变量。
.局部变量 dE, 对象

dE = 集_网页文档.读对象型属性 (“documentElement”, )
滚动条高度 = dE.读数值属性 (“scrollHeight”, )
滚动条宽度 = dE.读数值属性 (“scrollWidth”, )
[/e]

网页_滚动条控制
[e].版本 2

.子程序 网页_滚动条控制, , 公开, 控制浏览器滚动条上下滑动。
.参数 滚动距离, 整数型, , 正数为下滚,如:50。负数为上滚,如果-50。
.参数 滚动类型, 整数型, 可空, 可空:默认为0。0=纵,1=横
.局部变量 dE, 对象
.局部变量 现在位置, 整数型

dE = 集_网页文档.读对象型属性 (“documentElement”, )
现在位置 = dE.读数值属性 (“scroll” + 选择 (滚动类型 = 1, “Left”, “Top”), ) + 滚动距离
dE.写属性 (“scroll" + 选择 (滚动类型 = 1, “Left”, “Top”), 现在位置)[/e]



自己新增了一个元素对象匹配方法,虽然很方便但是 IE8 才提供基本支持 (CSS2 选择器, 但是内置的规则配置方式足够了),IE9 提供完善些的匹配支持 (如一些 CSS3 新增的选择器)[sup][url=https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll#Browser_compatibility]资料出处[/sup]。如果需要更方便的元素选择方法而不介意用户群的话可以用这个方法。[e].版本 2

.子程序 元素_取元素对象, 整数型, 公开, 返回匹配到的对象, 但要求用户安装的  IE 版本 >= 8
.参数 匹配规则, 文本型, 可空, #网页元素类型_ + ([#网页元素匹配规则_]/[网页元素匹配规则构建_]) + #网页元素匹配规则_新增规则 + ...
.参数 所有匹配到的元素对象, 元素对象, 参考 可空 数组, ↑详细请参考 querySelectorAll 语法。上述参数留空则取所有元素

.局部变量 _元素对象, 对象
.局部变量 元素集合, 对象, , "0"
.局部变量 i, 整数型

.如果真 (删首尾空 (匹配规则) = “”)
    匹配规则 = “*”
.如果真结束
_元素对象 = 集_网页文档.对象型方法 (“querySelectorAll”, 匹配规则)

.如果真 (_元素对象.是否为空 ())
    输出调试文本 (“普通填表 -> 元素_取元素对象 -> 未成功匹配到元素对象”)
    返回 (-1)
.如果真结束
.变量循环首 (0, _元素对象.读数值属性 (“length”, ) - 1, 1, i)
    加入成员 (元素集合, _元素对象.读对象型属性 (“item”, i))
.变量循环尾 ()
所有匹配到的元素对象 = 元素集合
返回 (取数组成员数 (元素集合))
[/e]


然后一个公开函数
[e].版本 2

.子程序 网页元素匹配规则构建_匹配属性, 文本型, 公开
.参数 匹配的属性, 文本型
.参数 匹配类型, 整数型, , #元素匹配规则构建_匹配类型_
.参数 匹配内容, 文本型, 可空, 为 [#元素匹配规则构建_匹配类型_匹配存在] 时可留空
.局部变量 内部用, 文本型
.局部变量 引号, 文本型

.如果真 (匹配类型 < 0 或 匹配类型 > 4)
    返回 (“”)
.如果真结束
.判断开始 (匹配类型 ≠ #元素匹配规则构建_匹配类型_匹配存在)
    内部用 = 多项选择 (匹配类型 + 1, “”, “^”, “$”, “*”) + “=”
    引号 = “'”
.默认
    匹配内容 = “”
.判断结束
返回 (“[” + 匹配的属性 + 内部用 + 引号 + 匹配内容 + 引号 + “]”)
[/e]

用到的常量
[e].版本 2

.常量 网页元素类型_链接, "“a”", 公开
.常量 网页元素类型_框架, "“iframe”", 公开
.常量 网页元素类型_表单, "“form”", 公开
.常量 网页元素类型_表单输入, "“input”", 公开
.常量 网页元素类型_多行文本框, "“textarea”", 公开
.常量 网页元素类型_div, "“div”", 公开
.常量 网页元素类型_span, "“span”", 公开
.常量 网页元素类型_图片, "“img”", 公开
.常量 网页元素类型_组合框, "“select”", 公开
.常量 网页元素类型_按钮, "“button”", 公开
.常量 网页元素类型_所有, "“*”", 公开

.常量 网页元素匹配规则_id为, "“#”", 公开
.常量 网页元素匹配规则_类名为, "“.”", 公开
.常量 网页元素匹配规则_子元素, "“ ”", 公开
.常量 网页元素匹配规则_新增规则, "“,”", 公开.常量 元素匹配规则构建_匹配类型_完全匹配, "0", 公开
.常量 元素匹配规则构建_匹配类型_匹配开头, "1", 公开
.常量 元素匹配规则构建_匹配类型_匹配结尾, "2", 公开
.常量 元素匹配规则构建_匹配类型_任意匹配, "3", 公开
.常量 元素匹配规则构建_匹配类型_匹配存在, "4", 公开

[/e]



用法示例:
[e].版本 2

.局部变量 填表, 普通填表
.局部变量 匹配集, 对象, , "0"


' 匹配 ID 为 inp1 的输入元素
填表.元素_取元素对象 (#网页元素类型_表单输入 + #网页元素匹配规则_id为 + “inp1”, 匹配集)


' 匹配所有按钮
填表.元素_取元素对象 (#网页元素类型_按钮 + #网页元素匹配规则_新增规则 + #网页元素类型_表单输入 + 网页元素匹配规则构建_匹配属性 (“type”, #元素匹配规则构建_匹配类型_完全匹配, “button”) + #网页元素匹配规则_新增规则 + #网页元素类型_表单输入 + 网页元素匹配规则构建_匹配属性 (“type”, #元素匹配规则构建_匹配类型_完全匹配, “submit”), 匹配集)
' 或者如果熟悉语法可以自己构建匹配规则。上面那个可以通过易语言 IDE 点左边的加号,一条一条的很方便思路查看。
框架填表.元素_取元素对象 (“button,input[type='button'],input[type='submit']”, 匹配集)
[/e]

目前就这些… 下午顺便研究了下跨域填表,蛮好玩的 w
如有错误,还请指出。

P.s. 精易模块改造起来其实蛮好玩的,改了之后更顺手了 233
P.s.2. 现在 IE 信息框弹窗标题不是“Microsoft Internet Explorer” 了,变成了 “Message from webpage”。循环查找关闭 IE 消息框的函数【网页_自动点击网页信息框】可能要稍微改改了w。

评分

参与人数 1精币 +2 收起 理由
夏冰 + 2 奉上小小红包希望笑纳

查看全部评分

结帖率:100% (2/2)
发表于 2017-2-28 13:40:15 | 显示全部楼层   山西省朔州市
  不懂              
回复 支持 反对

使用道具 举报

发表于 2013-12-2 23:59:08 | 显示全部楼层   新疆维吾尔自治区伊犁哈萨克自治州
真服了楼主了
回复 支持 反对

使用道具 举报

签到天数: 23 天

发表于 2013-11-27 23:47:53 | 显示全部楼层   江苏省淮安市
学习了!!!
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2013-11-13 12:12:01 | 显示全部楼层   山东省济南市
呜呜呜呜呜呜呜,我不会呢
回复 支持 反对

使用道具 举报

发表于 2013-10-19 09:35:33 | 显示全部楼层   海南省五指山市
收下了  不知道如何
回复 支持 反对

使用道具 举报

结帖率:70% (26/37)
发表于 2013-10-16 17:53:56 | 显示全部楼层   江苏省徐州市
不懂 支持一下
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:67% (2/3)
发表于 2013-10-12 20:16:01 | 显示全部楼层   浙江省温州市
支持,比较好用,我喜欢
回复 支持 反对

使用道具 举报

结帖率:33% (1/3)
发表于 2013-10-8 11:28:50 | 显示全部楼层   贵州省黔南布依族苗族自治州
很好,学习中
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:67% (2/3)
发表于 2013-10-3 16:08:26 | 显示全部楼层   四川省成都市
不错顶一下
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2013-9-30 00:07:44 | 显示全部楼层   安徽省滁州市
不懂呃呵呵
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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