1

タイトルは非常に自明ですが、ここでより深い説明に入ります。画像ホスティング サイト用の Firefox 拡張機能があります (現在ダウンしています)。

現在、次の 2 つの機能があります。

  • 画像を右クリックしてリモートアップロード
  • 画像を右クリックし、Javascript ポップアップを取得して新しい幅を入力し、アップロードします

拡張機能がまだ必要としているのは、ユーザーが現在ブラウザに表示されているものをアップロードできるようにする機能、またはブラウザの完全なキャプチャ (スクロールバーの下にあるものを含む) です。

私が試したこと:

他の拡張機能からさまざまなコードをコピーして、自分のコードと組み合わせてみました。canvasよくわからない内容が含まれていました。何とかbase64の画像文字列を取得できました(方法は正確には覚えていません)。その文字列を使用して、目標を達成するための最良の方法は、それを経由してイメージ ホストに送信しXMLHttpRequest、ホストでイメージを作成することだと考えました。画像へのResponseTextリンクになります。

ご覧のとおり、ここではやりすぎました。明らかに、この問題のためにサーバー側で余分な処理を行う必要はありません。サーバー側で余分なコーディングをせずに、拡張機能のみからすべてを処理する方法があると思います(間違っている場合は修正してください)。

実際の問題

これがアドオンです: https://addons.mozilla.org/en-US/firefox/addon/imgit/
拡張機能によって追加される 2 つのコンテキスト メニューを見ることができるように、3 つ目のコンテキスト メニューが必要です。右に矢印があり、必要な 2 つの新しいオプションを含む別のメニューを開くことができます。

  • 表示されている画面をキャプチャしてアップロードする
  • フルスクリーンをキャプチャしてアップロード

最初のオプションは、スクロールバーの下にあるものを除いて、ブラウザーに表示されているものをキャプチャしてアップロードする必要があります。2 番目のオプションでは、スクロールバーの下にあるものを含め、すべてをキャプチャして自分の Web サイトにアップロードする必要があります。

コンテキスト メニューを追加することは大したことではありませんが、思い通りに動作させることは私が抱えている問題です。どうやって始めればいいのかわからず、Web に関する調査を行っても、それ以上のことはできませんでした。何らかの方法でJavascriptを使用して画像を作成し(方法canvasがわからない)、base64でエンコードされた文字列をWebサイトに送信すると、実際には機能しますが、スナップショットを取得してbase64でエンコードすることが問題です。また、Firefox 拡張機能で実際に Ajax を使用してデータを送受信できるかどうかもわかりません。

あなたから必要なもの

この問題に対する論理的なアプローチが必要です。アイデアがある場合は、回答してください。コード スニペットを表示していただければ幸いです。私は Javascript の第一人者ではありませんが、開始方法に関する情報があれば、この混乱から抜け出すことができます。

私が望むものを達成するための最良の方法は何ですか?

4

1 に答える 1

0

devtools のスクリーンショット コマンドのgrabScreen関数を確認してください。

于 2013-02-18T13:29:41.053 に答える