[Javascript]填写一个没有 ID 的文本框和使用书签在页面重新加载时更改的名称

[Javascript]Fill a textbox without ID and a name that changes on page reload using a bookmark

所以我正在尝试在 chrome 中创建一个书签,该书签将输入一个 Javascript 代码,该代码将填充我的路由器主页上的一个文本框。目标是让我省去记住那个愚蠢的密码或不得不打开包含所述密码的文本文件的麻烦。

我知道,我知道,...我很懒。 (但不是为了在这个过程中学习一些Javascript)

问题是文本框没有 ID,并且它的名称在重新加载时会发生变化,所以我无法提前知道它的名称。

我看了这里的几页,它们在某种程度上指导了我正确的方向,但我无法让它为我的生活工作,因为我在 Javascript 方面几乎没有经验。

文本框的 html 如下所示:

<input type="PASSWORD" style="WIDTH: 150px" name="password_random10digitnumber" value="" size="20" maxlength="64">

这是我在书签上最后得到的 link(我尝试过的唯一没有给我错误的东西)。

javascript:document.getElementsByTagName("input")[0].value='myrouterpwd'

目前,当我按下我的书签时,它会刷新页面并显示一个空白页面,上面有 "myrouterpwd"。

(页面上还有另外两个输入 html 块,它们是:

<input type="HIDDEN" name="md5_pass" value="">
<input type="HIDDEN" name="auth_key" value="numbersIamnotsureIshouldshowtheworld">

)

感谢任何花时间回答的人!

我对书签的处理不多,我假设因为它是一个书签,所以您正在离开您实际想要使用的页面。所以,我不确定以这种方式触发是一个可行的解决方案。当然,您可以利用浏览器为您存储密码的功能。 ;)

但是,对于你问题的要点...假设它是页面上唯一的密码字段,使用 element.querySelector() 会找到它:

// Get a reference to the right element based on its type attribute value
let passwordBox = document.querySelector("input[type='password']");

passwordBox.value = "MySecretPassword";  // Populate the field
console.log(passwordBox.value);          // Confirmation
[type='password'] { background:yellow; } /* Just so you know which box is the password box */
<input type="hidden" name="doesntMatter">
<input name="someTextBox">
<input type="password" name="doesntMatter2">
<input name="someOtherTextbox">