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

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

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

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

HTML

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

Q&A

解決済

1回答

780閲覧

別ドメインのサイトを開いてフォームに自動入力する方法

otftrough

総合スコア476

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2020/07/07 12:00

自分のサイトからWordPressのログインページを新しいタブで開き、ログイン情報を自動入力したいです。
以前は動いていた(らしい)ソースコードを頂いていて、それを見てみると、

html

1<form class="form-inline d-inline" id="loginform" action="ログイン画面のURL" method="post" name="ページ名" target="_blank"> 2 <input type="hidden" name="log" id="user_login" class="input" value="ログインID" size="20"> 3 <input type="hidden" name="pwd" id="user_pass" class="input" value="ログインパスワード" size="20"> 4 <input type="hidden" name="redirect_to" value="ログイン後のリダイレクト先"> 5 <input type="hidden" name="testcookie" value="1"> 6 <button class="card-link btn btn-sm btn-primary px-2 waves-effect waves-light" name="submit" value=""> 7 ログイン 8 <i class="fa fa-external-link" aria-hidden="true"></i></button> 9</form>

このように書かれていました。
※一部日本語で書かれている部分は私が書き換えました。正しくURLやID、パスワードが入っています。

具体的なコードは見つけられませんでしたが、似たような内容のことを書いてあるサイトを少し見つけて、
以前はこのようなフォームで自動で入力されたのでしょうか?

現在は、このフォームをsubmitしても、ログインページが開かれるだけでIDとパスワードは入力されません。

なので、新しく下記のスクリプトを書きました。

JavaScript

1function openLoginPage(formname){ 2 var form = document.getElementsByName(formname)[0]; 3 var wnd = window.open("ログインページURL"); 4 wnd.addEventListener("load", () => { 5 wnd.document.loginform.log.value = form.log.value; 6 wnd.document.loginform.pwd.value = form.pwd.value; 7 }); 8}

このfunctionをbuttonタグのonclick属性に入れてみたのですが、
同じドメイン(localhostで試しました)だとうまく動きますが、localhostから別ドメイン(WordPressサイト)だと、loadイベントが呼ばれません。
documentも取得できません。

HTMLとJavaScriptでこれらを解決することはできないでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

以前は動いていた(らしい)ソースコードを頂いていて

現在のブラウザは、セキュリティ面の実装が強化されているため、CORS(CrossOrigin Resource Shearing) という制約があります。

クロスオリジンの関係にある(ログイン先の)サーバー設定を弄る権限があれば可能ですが、そうでなければ不可能です。

詳細は リンク先をご覧ください。

投稿2020/07/07 12:43

AkitoshiManabe

総合スコア5434

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

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

otftrough

2020/07/07 16:02

やっぱりそうですよね... CORSとかaccess-Control-Allow-Originとかは勉強済みだったのですが、「前は動いてた」なんて言われたので自分の知識を疑ってしまいました。
hentaiman

2020/07/07 16:44

「前は動いていた」と回答の内容はマッチしてますよ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問