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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1110閲覧

JavaScriptでhtmlの<a>タグをクリックしたい

mmi

総合スコア2

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2020/06/10 08:31

前提・実現したいこと

下記サイトでの<a>タグをJavaScriptを使ってクリックしたいと考えています。
https://bmypage.kuronekoyamato.co.jp/

macの中にあるAppleScriptを使い、自動化をしようとしています。
その前段階としまして、Safariの開発メニューのJavaScriptのコンソールを用いて、テストしています。

イメージ説明

現在、添付画像にある「『ファイル選択』をクリック」を実装中しようとしたのですが、
上手くいきません。
(クリックされると、ファイル選択のダイアログが出てきます)

どうぞ宜しくおねがいします。

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

[コンソールに入力したもの] document.getElementById('file_button').click() [結果] undefined

該当のソースコード

html

1<--html内の『ファイル選択』部分を抜粋--> 2<tr> 3 <th>ファイル選択</th> 4 <td colspan="5"> 5 <input type="file" id="input_file" style="display:none"> 6 <div id="flashContent"> 7 <span id="file_drop" style="z-index:2; position: absolute; width:460px; height:33px; cursor:not-allowed;"></span> 8 <input class="w460" type="text" disabled="" id="file" readonly="" value=""> 9 <a href="javascript:;" class="btn_popup" id="file_button">ファイル選択</a> 10 <input type="file" style="display:none" id="filename" size="60" value="" accept="application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"> 11 <span class="text_syosai"><a href="javascript:;" class="poptmp" id="basic_temp">基本レイアウトテンプレート</a></span> 12 </div> 13 </td> 14</tr>

html

1<--html内のページ下部の外部Scriptを読み込んでいる部分を抜粋--> 2<script src="scripts/vdr-3ee93e23a5.js"></script> 3<script src="scripts/vdr2-3010403877.js"></script> 4<script src="scripts/main-94e9bbe901.js"></script>

javascript

1//scripts/main-94e9bbe901.js より抜粋 2function fileUplord() { 3 $("#file_button").on("click", function() { 4 $("#filename").val(""), $("#filename").click() 5 }), $("#file_drop").on("drop", function(e) { 6 e.stopPropagation(), e.preventDefault(); 7 var t = e.originalEvent.dataTransfer.files, 8 r = null, 9 n = t[0].name; 10 if (!n) { 11 if (!$("#file").val()) 12 return; 13 n = $("#file").val() 14 } 15 if (explorerFileFlg && !n && $("#file").val()) 16 return void (explorerFileFlg = !explorerFileFlg); 17 "csv" == $("#torikomi_type").val() ? r = "csv" : "xls" == $("#torikomi_type").val() && (r = "xls"); 18 var a = n.replace(/^.*./, ""); 19 if (a = a == n ? "" : a.toLowerCase(), "xls" != r || "xls" != a && "xlsx" != a) { 20 if ("csv" != r || "csv" != a) { 21 if (explorerFileFlg) 22 return void (explorerFileFlg = !explorerFileFlg); 23 var i = $("#fileName"); 24 return i.replaceWith(i = i.clone(!0)), void alert(SE0037) 25 } 26 } else 27 ; 28 var s = function(e) { 29 e && e[0] && handleFiles(e) 30 }; 31 s(t), "" !== n && null !== n || ($("#file").attr("disabled", !0), $("#file").attr("value", ""), $("#filename").attr("value", "")) 32 }), $("#file_drop").on("dragover", function(e) { 33 e.preventDefault() 34 }), $("#filename").on("change", function() { 35 var e = $("#filename").val(), 36 t = null; 37 if (!e) { 38 if (!$("#file").val()) 39 return; 40 e = $("#file").val() 41 } 42 if (explorerFileFlg && !e && $("#file").val()) 43 return void (explorerFileFlg = !explorerFileFlg); 44 "csv" === $("#torikomi_type").val() ? t = "csv" : "xls" === $("#torikomi_type").val() && (t = "xls"); 45 var r = e.replace(/^.*./, ""); 46 if (r = r === e ? "" : r.toLowerCase(), "xls" !== t || "xls" !== r && "xlsx" !== r) { 47 if ("csv" !== t || "csv" !== r) { 48 if (explorerFileFlg) 49 return void (explorerFileFlg = !explorerFileFlg); 50 var n = $("#filename"); 51 return n.replaceWith(n = n.clone(!0)), void alert(SE0037) 52 } 53 } else 54 ; 55 fileMaxFlg = !1; 56 var a = function(e) { 57 e.files && e.files[0] && handleFiles(e.files) 58 }; 59 a(this), "" !== e && null !== e || ($("#file").attr("disabled", !0), $("#file").attr("value", ""), $("#filename").attr("value", "")) 60 }) 61}

試したこと

[コンソールに入力したもの]
document.getElementById('file_button').click()

[結果]
undefined

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

OS macOS 10.13.6
ブラウザ Safari 13.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

jQueryで処理しているなら
$("#file_button").trigger('click')
ではだめなのでしょうか?

投稿2020/06/10 08:43

yambejp

総合スコア116724

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

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

mmi

2020/06/10 09:39

ご回答ありがとうございます! Safariでやってみたところ、ダメでした。 しかし、他のブラウザだとどうなのかなと思いまして、 Chromeで試してみたところ、教えていただいた方法で上手く行きました。 $("#file_button").click() 上記でも上手く行きました。 Safariの設定の問題なんでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問