如何将给定iMacro代码转换为可发送多命令的单一完整快捷链接
需求拆解
你提供的两段iMacro代码对应的实际操作是:
- 在目标页面找到提交地址为
index.php的表单,选中名称为combatSetId的下拉选择框,选中值为355181 - 自动点击该表单下名称为
submit的提交按钮,完成表单提交
你要做的单链接快捷跳转,本质是跳过手动选下拉框、点按钮的步骤,直接发起和iMacro完全一致的请求。
快捷链接生成方法
前置判断
先确认原表单的提交方式:打开原表单页,右键查看页面源码,找<form action="index.php"这行标签,看有没有method="post"的属性:
- 没有该属性,就是默认GET提交,可直接生成纯可访问的跳转链接
- 有
method="post",原生a标签无法直接携带POST参数,需要用JS书签实现同等效果
1. GET提交的纯链接模板
把域名替换成你实际访问的目标站点地址即可,格式如下:
https://你的目标站点域名/index.php?combatSetId=355181&submit=
参数说明:
combatSetId=355181对应iMacro里下拉框的选中值submit=对应提交按钮的传参,如果原页面提交时submit不需要传值,直接删掉这段即可;如果submit有固定值(比如按钮显示文字是「确认出战」),就替换成submit=确认出战
2. POST提交的JS书签方案
把下面的代码保存为浏览器书签,点击书签就会自动发起对应POST请求,效果和iMacro执行完全一致:javascript:fetch('/index.php',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'combatSetId=355181&submit='}).then(()=>alert('命令已执行'))
注意:如果你的表单在二级目录下,需要把/index.php替换成表单实际的相对路径,比如/game/combat/index.php
常见问题排查
- 如果点击链接提示权限不足、提交失败,先检查原表单是否有CSRF校验参数(比如隐藏的
token值),需要把该token也拼到请求参数里才能正常提交 - 参数值如果包含中文或者特殊字符,需要先做URL编码再放到链接里,你这里的参数是纯数字,不需要额外处理
内容的提问来源于stack exchange,提问作者Hite mate
相关产品推荐
相关产品推荐

