我一直在尝试为 Google Chrome 编写我的第一个用户脚本。它检查路由器页面并重新连接,直到获得有效的 IP 地址。
我将脚本保存为 IPchecker.user.js 并通过扩展页面将其安装在 google chrome 中。但是当我刷新页面时,javascript控制台会抛出一个错误:
Uncaught TypeError: Cannot call method 'getElementsByClassName' of null
据我了解,这意味着它不知道文件是什么。但这怎么会发生呢?我认为脚本将在文档准备好后运行?这不是真的吗?这是在 javascript 控制台中工作的代码。
// ==UserScript==
// @name WAN checker
// @version 0.0.1
// @description Check tomato IP addresses and reconnect as needed
// @match *://192.168.1.1/status-overview.asp
// ==/UserScript==
(function reconnect() {
wan1ip = document.getElementById('wan1ip').getElementsByClassName('content')[0].innerText.split('.').slice(0,2).join('.');
if (wan1ip != "333.3333") {
wan_connect("1");
setTimeout("reconnect()",2000);
}
wan2ip = document.getElementById('wan2ip').getElementsByClassName('content')[0].innerText.split('.').slice(0,2).join('.');
if (wan2ip != "333.333") {
wan_connect("2");
setTimeout("reconnect()",2000);
}
})();