苹果iOS用户可以通过捷径(快捷指令)快速完成表单填写以提高工作效率。本文主要介绍如何通过捷径(快捷指令)调用 JavaScript 在网页运行的方式快速填写表单。

效果展示:

%title插图%num

捷径(快捷指令)在网页上运行JavaScript 脚本基本格式:

var result = [];

// JavaScript代码

// 调用 Completion 以完成
completion(result);

以疫情期间在校生出入校园申请表为例:

%title插图%num

首先分析表单所需要填写的信息类型,在本例中,类型主要有文本框、单选按钮、时间选择器:

1. 文本框

%title插图%num

对于文本框,我们可以通过定位文本框对应id,通过定义value的形式为文本框赋值。

document.getElementById(‘ZY’).value=”需要填写的内容”;

2. 单选按钮

%title插图%num

面对单选按钮,改变选择器样式并不能将内容*终插入*后提交的表单中,我们需要用到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. 时间选择器

%title插图%num

时间选择器数据的填写,我们可以直接使用捷径(快捷指令)的 当前日期功能:

%title插图%num

document.getElementById(‘JTSDJS’).value=”当前日期”;

%title插图%num

2 在捷径(快捷指令)中将出发时间的当前日期参数格式设置为 yyyy-MM-dd HH:mm,返校时间的当前日期参数格式设置为 yyyy-MM-dd 23:00,即表示出发时间为填表时间,返校时间为当天的23:00

%title插图%num

值得注意的是:

%title插图%num

这个表单内的元素全部位于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);

至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。