苹果iOS捷径(快捷指令)自动填写表单
苹果iOS用户可以通过捷径(快捷指令)快速完成表单填写以提高工作效率。本文主要介绍如何通过捷径(快捷指令)调用 JavaScript 在网页运行的方式快速填写表单。
效果展示:
捷径(快捷指令)在网页上运行JavaScript 脚本基本格式:
var result = [];
// JavaScript代码
// 调用 Completion 以完成
completion(result);
以疫情期间在校生出入校园申请表为例:
首先分析表单所需要填写的信息类型,在本例中,类型主要有文本框、单选按钮、时间选择器:
1. 文本框
对于文本框,我们可以通过定位文本框对应id,通过定义value的形式为文本框赋值。
document.getElementById(‘ZY’).value=”需要填写的内容”;
2. 单选按钮
面对单选按钮,改变选择器样式并不能将内容*终插入*后提交的表单中,我们需要用到JavaScript的点击动作。
var event = new MouseEvent(‘click’);
var XQ_click = document.getElementsByClassName(‘van-radio van-radio–horizontal’)[1];
XQ_click.dispatchEvent(event);
基本逻辑为:定义点击事件(MouseEvent继承自UIEvent)——定位选择按钮——实现点击。
关于定位选择按钮,这里再强调一下,对于没有独立id的选择按钮,可以通过其在ClassName中的具体位置序号予以定位。
3. 时间选择器
时间选择器数据的填写,我们可以直接使用捷径(快捷指令)的 当前日期功能:
document.getElementById(‘JTSDJS’).value=”当前日期”;
2 在捷径(快捷指令)中将出发时间的当前日期参数格式设置为 yyyy-MM-dd HH:mm,返校时间的当前日期参数格式设置为 yyyy-MM-dd 23:00,即表示出发时间为填表时间,返校时间为当天的23:00
值得注意的是:
这个表单内的元素全部位于id为formIframe的iframe内,因此在定位表单元素前还需要定位表单:
parent.document.getElementById(“formIframe”)
完整脚本:
var result = [];
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘ZY’).value=”需要填写的内容”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘NJ’).value=”需要填写的内容”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘BJ’).value=”需要填写的内容”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘LXFS’).value=”需要填写的内容”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘SZSS’).value=”需要填写的内容”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘QJWCSY’).value=”需要填写的内容”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘JTGJD’).value=”步行”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘JKZK’).value=”健康”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘JTSDKS’).value=”当前日期”;
parent.document.getElementById(“formIframe”).contentWindow.document.getElementById(‘JTSDJS’).value=”当前日期”;
//MouseEvent继承自UIEvent
var event = new MouseEvent(‘click’);
var XQ_vant_click = parent.document.getElementById(“formIframe”).contentWindow.document.getElementsByClassName(‘van-radio van-radio–horizontal’)[1];
var ZXTY_vant_click = parent.document.getElementById(“formIframe”).contentWindow.document.getElementsByClassName(‘van-radio van-radio–horizontal’)[2];
var SFLJ_vant_click = parent.document.getElementById(“formIframe”).contentWindow.document.getElementsByClassName(‘van-radio van-radio–horizontal’)[5];
XQ_vant_click.dispatchEvent(event);
ZXTY_vant_click.dispatchEvent(event);
SFLJ_vant_click.dispatchEvent(event);
// 调用 Completion 以完成
completion(result);
至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。