1

Chrome 拡張機能を作成しようとしています。ユーザーがアイコンをクリックすると、フォームを含むポップアップ ウィンドウが表示されます。フォームのテキストエリアには、URL に追加されるパラメーターを含めることができます。入力して [GO] ボタンをクリックした後、このパラメーターを含む URL を含む複数のタブを開く必要があります。

例:popup.html

<form name="myform">`
<textarea id="params" name="params" style="width: 170px;height: 270px;"></textarea>`
<input id="edit" checked="checked" type="radio" name="edit" value="1" /> option 1 <input id="edit" type="radio" name="edit" value="2" /> option 2`
<div id="clicked">GO</div>`
</form>`

それからpopup.js私は持っています:

function click(e) {
    chrome.tabs.executeScript(null, {
        code: "alert('starting');"
    });

    opener();
}

document.addEventListener('DOMContentLoaded', function () {
    var divs = document.getElementById("red");

    divs.addEventListener('click', click);

});

したがって、ユーザーが GO ボタンをクリックすると、opener() 関数を開始する必要があります。

これがオープナー関数です。テキストエリアとラジオボタンの値のみを決定し、テキストエリアにある manz パラメータと同じ数の新しいタブを開きます。

function opener() {
    alert('working');
    var parameter = document.myform.getElementById("params").value;
    for (index = 0; index < document.myform.edit.length; index++) {
        if (document.myform.edit[index].checked) {
            var radioValue = document.myform.edit[index].value;
            break;
        }

        var Result = parameter.split("\n");

        if (radioValue == 1) {
            for (i = 0; i < Result.length; i++) {
                window.open('http://mypage.com?param=' + Result[i]);
            }
        }
    }
}

したがって、Result は \n で分割された textarea の値であり、radio 値は選択されたラジオ ボタンの値です。

これは正常に動作します - ブラウザのアイコンをクリックすると、フォーム付きのポップアップが表示されますが、テキストエリアに入力して最初のラジオボタンを選択すると、[GO] をクリックすると、オープナー機能が機能しません...

動作する唯一のものは、動作中の単語を含むポップアップ アラートと、click(e) 関数から始まるアラートです。

したがって、オープナー機能が開始され、アラートが書き込まれますが、他には何もありません...タブは開かれず、何も起こりません...

誰か助けてくれませんか?

4

1 に答える 1

2

chrome.tabs.create 関数を使用すると、拡張機能内で window.open 関数を使用するよりもはるかにうまく機能することがわかりました。

chrome.tabs.create({url:"https://www.facebook.com/PSChrome"});
于 2012-04-20T13:47:46.977 に答える