testkun123
@testkun123 (T K)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

新規ウィンドウで選択タブを表示し、親タブに選択した項目を返したい

解決したいこと

新規ウィンドウで選択タブを表示し、そこで項目を選択したら
親のタブに値を返したくてwindow.openerを使用し、試行錯誤しておりましたが、
親のタブに値が返ってきません。
解決策をご存知の方、ご教示のいただけますと幸いです。

該当するソースコード

// 拠点が選択された時、配達員一覧を新規ウィンドウで開く
var delivery_workers = document.querySelectorAll('.select-add-event-delivery-workers-list-change');
delivery_workers.forEach(function (select) {
    select.addEventListener('change', function () {
        url.searchParams.set(this.id, this.value);
        window.open('/delivery-workers/list' + this.value, null, 'width=500,toolbar=yes,menubar=yes,scrollbars=yes,rel="noopener noreferrer"');
    });
});
// 選択ボタンが押されたときに値を渡す
var close_button = document.querySelectorAll('.choice-btn');
close_button.forEach(function (select) {
    select.addEventListener('click', function () {
        choice_worker_name = this.value;
        console.log(choice_worker_name);
        document.getElementsByClassName("choice_worker").value = choice_worker_name;
        window.opener.document.getElementsByClassName("choice_worker").value = choice_worker_name;
        window.close();
    });
});

自分で試したこと

Window.openとwindow.openerのリファレンスを確認てみましたが、解決できませんでした。

0

1Answer

直接の原因かは分かりませんが、エラーが発生していないでしょうか?

jQueryを使う前提ならばイベントハンドラーもjQueryで書いた方がバグを防げると思います。逆にエラーを簡単に見つけたいのであればjQueryは使わないほうが分かりやすいと思います。

0Like

Comments

  1. @testkun123

    Questioner

    返信いただきありがとうございます、コードを修正いたしました。
  2. 何度も聞きますがエラーが発生していませんか?(コンソールは確認したでしょうか?)
    書き方が間違っている部分についてリンクを貼っていますので、確認して修正していただきたいです。
  3. @testkun123

    Questioner

    返信いただきありがとうございます!、コンソールを確認いたしましたがエラーは発生しておりませんでした。。。
    また、window.openerの件は自己解決いたしました。
    ありがとうございました。

Your answer might help someone💌