3

ユーザーが特定のテキストを自動的に入力してメールを送信できるChrome拡張機能を作成したいと思います。mailto:リンクを使用していましたが、1024文字を超える文字列を処理できず、HTMLリンクを作成できません。電子メールページ内から(おそらくローカルストレージを使用して)、追加のテキストやHTMLリンクを入力する方法はありますか?

4

1 に答える 1

1

残念ながら、私の知る限り、ネイティブの chrome/javascript API はありません。私はいくつかの検索を行い、誰かが取り組んでいるオープンソースのオプションを見つけましたが、それは非常に骨の折れるものでした. 彼は、他の人が彼と一緒に飛び乗って、それを肉付けすることを望んでいました.

これを試しているようです:

URL を作成するには、&body= タグを使用してメッセージを URL エンコードできますが、長さに制限があります。chrome を使用して新しいタグを開く方法を既に理解しているようで、変更された URL 文字列だけを使用して短いメールを作成できました。私は最初のクロム拡張でそれに似たことをしました。こんな感じでした。

function sendToUrl(){ chrome.tabs.query({active:true, windowId: chrome.windows.WINDOW_ID_CURRENT}, function(tab) {
    //while this seems to generate the URL correctly, gmail limits how long the body text can be therefore this is not a viable solution
    //Also there is no javascript API therefore there is no hope of sending an email.

    //Need to loop through each tab and not just the first one
    var currentTab = tab[0];
    var tabInformation = RPATH.getTab(currentTab.id);

        var mailUrl = "https://mail.google.com/mail/?view=cm&fs=1&tf=1&su=My%20Subject&to=";
        // grab the email addresss from popup.html
        mailUrl += document.getElementById("to").value + "&body=";

        // get formBody from popup.html
        var formBody = document.getElementById("body").value;
...
//I did some other stuff that isn't relevant here
...
        //Concat final mailto url
        mailUrl = mailUrl + formBody;
        chrome.extension.sendMessage({mailUrl: mailUrl}, function(response){ console.log(response.farewell);});
});}

長いメール本文の場合

ただし、それでは道半ばになります。私が考えることができる唯一の代替手段は、開いているタブを分割して電子メールの本文に記入することでした. 追加を使用して、ページの読み込みが完了した後にメール本文を変更できます。それは私が以下に持っているもののように見えるかもしれません。iframe 要素を選択し、その中に body タグを見つけ、最後にタグが開いた直後にいくつかの html を追加していることに注意してください。電子メールの本文は html に過ぎないので、div、tr、br などのタグはすべて適切にフォーマットされた電子メールを作成する際に機能するはずです。前の例では、フォームからテキストを文字列として取得しました。代わりに、jquery を使用して popup.html ページの html を複製し、複製した html を追加することができます。簡単にするために、テキストのみを append 内に配置します。

$("iframe#:1t4").find("body.editable").append('<p>My long email body</p>');

そこからクリックイベントを実行できると思いますが、それをユーザーに任せることもできます。

于 2012-10-19T17:15:40.920 に答える