Posted in: IT, Mobile/iOS, Website/Blog

Safari浏览器利用脚本自动填充表单

wordpress 或其它许多类似的博客系统,在发表用户评论时一般需要填写三个信息:名字、email、网址(可选)。每次都填进去,很麻烦。虽然很多主题都有“在此浏览器中保存我的显示名称、邮箱地址和网站网址,以便下次评论时使用。”的勾选项,但貌似大部分情况下都无法使用,原因不明。

我的博客起初也是这样,勾选了“自动保存”的选项也不生效。仅仅是保存了cookie。后来自己额外添加了js脚本,直接调用cookie自动填充,搞定, 所有浏览器都能用。

用chrome或firefox等浏览器去访问其它博客时,虽然很多时候无法保存这些表单信息,但由于这些浏览器是支持表单历史的,鼠标在输入框点两下,就会出现以往输入历史,选一下就好了,也方便。

问题出在macbook和iPhone,为了省电,我只用默认的Safari浏览器,它不支持表单历史,在输入框里鼠标点两下是没有反应的。后来寻找的解决办法是:

macOS上的 Safari

先安装 Userscripts,然后自己创建脚本,写以下代码就行:

var elements = document.querySelectorAll('[name="author"], [name="inpName"]');
for (let element of elements) {
    element.value = "自己的名字";
}

elements = document.querySelectorAll('[name="mail"], [name="email"], [name="inpEmail"]');
for (let element of elements) {
    element.value = "自己的邮箱";
}

elements = document.querySelectorAll('[name="url"], [name="inpHomePage"]');
for (let element of elements) {
    element.value = "自己的网址";
}

由于博客系统五花八门,所以name字段也很多,根据需要自己往里面补。目前我遇到的字段有:

# 昵称
[name="author"]
[name="inpName"]
[name="nick"]
[name="comname"]

# 邮箱
[name="mail"]
[name="email"]
[name="inpEmail"]
[name="commail"]

# 网址
[name="url"]
[name="inpHomePage"]
[name="link"]
[name="comurl"]
[name="site"]

写好之后,每次一打开网页,脚本就会自动填充,无需人工干预,很方便。

iOS上的Safari

iOS上的Safari没有插件,但可以使用捷径。方法在网上有介绍,但是网上写得步骤太简陋了,我自己探索了一下:

代码和macOS上相同。


最后更新于 2021 年 5 月 16 日 作者 springwood

Comments (3) on "Safari浏览器利用脚本自动填充表单"

  1. 我用的 浏览器 JS 标签手动填充的。这样我的浏览器就不用保存 cookies 了,可以放心的启用严格的隐私保护了。

    1. 我发现name字段五花八门,需要随时添加。刚才就发现一位用inpName、inpEmail、inpHomePage的。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注