私のFirefoxをマイグレーションしようとしましたaddon WebExtensionに低レベルのSDK APIを使用し、ある時点で新しいタブにURLエンコードされたPOSTデータを送りたいと思います。低レベルAPIでタブを開き、FirefoxのウェブエクステンションでPOSTリクエストを行います
それは、次のコードによって可能です:
const querystring = require('sdk/querystring');
let stringStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream);
stringStream.data = querystring.stringify(params); // params is a json data
let postData = Cc["@mozilla.org/network/mime-input-stream;1"].createInstance(Ci.nsIMIMEInputStream);
postData.addHeader("Content-Type", "application/x-www-form-urlencoded");
postData.addContentLength = true;
postData.setData(stringStream);
var tabBrowser = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser").gBrowser;
var selectedTabIndex = tabBrowser.tabContainer.selectedIndex;
var newTab = tabBrowser.loadOneTab("https://myurl.com/", {
inBackground: false,
postData: postData
});
tabBrowser.moveTabTo(newTab, selectedTabIndex + 1);
しかし、私はWebExtension同等物を発見していません。
フォームを作成してjsで送信することは可能ですか、それとも唯一の解決策ですか?
良いアイデアが、私は私が所有していないウェブサイトへ(HTMLフォームのような)URLエンコードされたデータをポストする必要があり、だから、結果を表示するのではなく、タブにPOSTする方が好きです。今、私はjavascriptを使ってHTMLフォームを生成しています。例えば、コードを投稿します。 –
私はあなたがちょうどxhr.send( "lorem = ipsum&name = binny")を変更できると思います。あなたのパラメータを含める。 http://www.openjs.com/articles/ajax_xmlhttp_using_post.php –
別の例:https://blog.mozilla.org/addons/2016/05/31/using-google-analytics-in-extensions/ –