発生している問題・エラーメッセージ
自分が頻繁にアクセスするサイトが自動ログインに対応していないため、手間を減らすためにログイン画面で自動でログインボタンを押すブックマークレットを作ろうと思いました。.submit()を使用すれば問題ないと思い作ってみたのですがうまく動作しませんでした。
色々調べてみてこのサイトのように.click()を使うことで一応解決はしたのですが.submit()が聞かない根本的な原因がわからず質問させてもらいました。
以下がそのコードです。htmlは一部のみです。
(idやnameにsubmitと設定されているものはありませんでした。またjsは下にあるonClickを除けば使用されていませんでした。)
html
1<div class="column one"> 2 <form action="(URL)" method="post"> 3 4 <!-- ユーザーID入力フォームなど色々 --> 5 6 <div class="form-element-wrapper"> 7 <button class="form-element form-button" type="submit" name="_eventId_proceed" 8 onClick="this.childNodes[0].nodeValue='ログインしています…'">Login</button> 9 </div> 10 </form> 11</div>
動かなかったもの
javascript
1document.querySelector(".column.one>form").submit()
動いたもの(.click使用)
javascript
1 document.querySelector(".column.one>form>.form-element-wrapper>.form-element.form-button").click()
試したこと
コンソール画面にdocument.querySelector(".column.one>form").submitとfirefoxで打つとfunction submit()と表示されそれに関する情報がツリーとなり表示されているので間違っていないように見えます。しかしdocument.querySelector(".column.one>form").submit()と打つとページがリロードされ、それと同時にコンソール画面にundefinedと表示されます。
補足情報
idやパスワードはブラウザのオートフィル機能により自動入力されています。
回答3件
あなたの回答
tips
プレビュー