如何在url中直接调用onclick javascript函数?

How to call an onclick javascript function directly in url?

我想调用一个 onclick 函数,因为我正在为 MikroTik RouterBoard 编写脚本,以便通过直接访问一个简单的 link 来重新启动我的调制解调器,但我发现调制解调器所在的页面重新启动时有一个按钮调用 onlick 函数,如下所示:

<input type="button" onclick="btnReset()" value="Reboot">

那么有什么方法可以直接在 http url 中调用这个 onclick 函数,例如:

http://admin:hunter@192.168.1.1/resetrouter.html?btnReset()=Reboot

这是我正在编写的 MikroTik 脚本,但它不能完成这项工作。它需要一个直接的 link,它只访问并下载一个文件..!

如果有人能提供 MikroTik 脚本人员的帮助,我们将不胜感激..在那之前,如果有任何方法可以直接 url 那就太好了..!

 {
/tool fetch url="http://admin:hunter@192.168.1.1/resetrouter.html?btnReset()=Reboot" mode=http 
}

btnReset() 函数可能只是一个对话框,然后是 URL 获取。打开 javascript 控制台,输入 btnReset.toString() 并查看。如果您在其中看到 URL,请尝试直接访问它。

不可能从超链接执行 js 代码(除非页面内部有脚本,专门用于此并且它正在检查某些参数...).

不过,有些工具可以帮助您以其他方式执行所需的操作:

  • 安装 Custom JS for Web Sites plugin 并定义将在 http://admin:hunter... 页面加载到浏览器后执行的 js 脚本。

    对于你的情况,这将是简单的函数调用:

    btnReset()
    
  • 分析btnReset() function的正文(可能是该函数发送http请求)并构造与cURL, see cURL Tutorial相同的请求。

  • 看看 Bookmarklet,这是一个存储在网络浏览器中的书签,包含 JavaScript 命令。

  • 熟悉 PhantomJS or Selenium 并编写简单的脚本来执行所需的操作。

您需要一个非常具体的 URL“http://admin:hunter@192.168.1.1/rebootinfo.cgi”。在我的例子中,函数 btnReset() 调用 "rebootinfo.cgi"。我按照以下步骤找到 "rebootinfo.cgi".

  1. 打开路由器的 "save/reboot" 页面或等效页面。

  2. 检查按钮 "Reboot",即右键单击特定按钮并从菜单中单击 "Inspect"。

  3. 在右侧打开的开发者工具中,注意高亮行中onclick属性的函数。例如。在我的例子中,来自行 "input type="button" onclick="btnReset()" value="Reboot".

  4. 的 btnReset()
  5. 转到开发者工具的控制台选项卡并粘贴不带括号的函数名称,例如 btnReset(不是 btnReset() )并按回车键。

  6. 在 btnReset() 的函数定义中,查找负责重启路由器的确切命令。在我的例子中是 "rebootinfo.cgi"。

  7. 就是这样,构建URL.