質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

4085閲覧

ブックマークレットを使用したボタンのクリック

omatsu45

総合スコア18

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/12/13 23:59

編集2018/12/15 00:43

前提・実現したいこと

ブラウザ上で値の自動入力をするブックマークレットを作っているんですが
ボタンのクリックが行いたいです。

発生している問題・エラーメッセージ

「外套のソースコード」に記載した
2行目のボタンのクリックが意図した動きになりません。

該当のソースコード

javascript:!function(){ document.forms['AAA'].elements['BBB'].value = 'CCC'; document.querySelector("[name=btnAAA0]").click(); }();

試したこと

対象の画面上で上記のjs(ブックマークレットを実行)しました。
1行目の値の入力までは正しく実行されます。
2行目のボタンのクリックが意図した動きになりません。

以下、挙動を追記します。
・エラーは特にありません。(Chrome-開発者ツール-consoleで確認)
・別画面にリダイレクトしてしまう。
ただし数回に一度、意図した動き(ボタンを押した後の挙動)になる。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/12/14 00:20

htmlも提示されないと何とも言えません 「意図した動きにならない」とは何がどうなるのでしょうか。 エラーなど起きていませんか? 質問本文に諸々追記してください
x_x

2018/12/14 01:12

どのようにブックマークレットを作っていますか? エスケープ処理は入っているでしょうか?
Lhankor_Mhy

2018/12/14 01:26

これ、内部のコード以前にtrueを返しちゃうので、ブックマークレットとして動作します? 少なくとも、当方の環境では使えないです。
Lhankor_Mhy

2018/12/14 01:28

ああ、Chrome では動くんですね。なんでだろ…… 大変失礼しました。
omatsu45

2018/12/15 00:17

mts10806さん コメントありがとうございます。 htmlも提示されないと何とも言えません  →承知しました。配慮が足らず申し訳ございません。社外秘のためソースの全体公開はできないのですが、他にどんな情報が必要でしょうか? 「意図した動きにならない」とは何がどうなるのでしょうか。 エラーなど起きていませんか? 質問本文に諸々追記してください  →質問文に追記します。
omatsu45

2018/12/15 00:22

x_xさん 以下の方法で作成しています。 1.jsをテキストエディタで作成 2.ブックマークのURL(Chrome)に入力 エスケープ処理は入っていません。記載したjsが全てです。
Lhankor_Mhy

2018/12/15 01:01

「別画面にリダイレクトしてしまう」とありますが、document.querySelector("[name=btnAAA0]") が submit ボタン、ということはないですよね?
omatsu45

2018/12/16 00:32

Lhankor_Mhyさん コメントありがとうございます。 外出中のため、返事が遅くなります。 本日21時前後には回答できる見込みなので 今しばらくお待ちください。
omatsu45

2018/12/16 11:32

Lhankor_Mhyさん お待たせしました。 submitボタンではなかったです。 他に調べてみることや試してみること、何か思い当りませんか。
Lhankor_Mhy

2018/12/17 01:11

うーん、ここでの『別画面』とは、そのサイトにある別のページ、と理解していいですか? 『1行目の値の入力までは正しく実行されます』とありますが、これは2行目がない状態で実行すると動作する、という理解で間違いないですか?
omatsu45

2018/12/17 12:19

Lhankor_Mhyさん 質問内容に上から順に答えます。 1.はい、対象サイトの別ページです。 2.2行目がない状態で実行すると動作します。
Lhankor_Mhy

2018/12/18 01:12

うーん、ここにあるコードだけではちょっとお手上げですね。 おそらく、そのボタンのclickイベントに何かが書いてある影響だとは思うのですが。
omatsu45

2018/12/18 03:45

Lhokor_Mhy ご回答ありがとうございます、了解しました。 clickイベントの使い方を調べ直してから再挑戦してみます。
guest

回答1

0

ベストアンサー

らちが明かないので、通常の方法(アンカーをブックマークに追加)のためのHTMLを書いてみると以下のようになります。

HTML

1<a href="javascript:(function()%7Bdocument.forms%5B'AAA'%5D.elements%5B'BBB'%5D.value='CCC';document.querySelector('%5Bname=btnAAA0%5D').click();%7D)();">bookmarklet</a>

改行コードをなくし、encodeURIComponent()を通したような文字列を書くことになります。

投稿2018/12/18 01:46

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問