今回は、通常のhabrメール(ページの無限の更新、リンクのクリックなど)にうんざりして、google chromeの小さな拡張機能を作成することにしました。
友達、 HabraMailに会おう!
これは、これまでのところ、 ベータ版( 多くの改善すべき点 )ですが、今すぐ使用を開始できます。
UPD: ソースコード
カットの下の残り:
説明
インストール後、Habrの任意のページで、そのアイコンが右下隅に表示されます。
クリックすると、「habrajashchik」の葉の最新のメッセージが表示された小さなウィンドウが表示されます。
メッセージの件名をクリックすると、スムーズに再起動せずに、メッセージのウィンドウが表示されます。
「書き込み」の碑文または作成者の名前(メッセージの件名の左側)をクリックすると、新しいメッセージフォームが表示されます。
ちなみに、表示フォームでは、メッセージを削除することもできます。
技術的な実装
この拡張機能の作成を開始するとすぐに、次のような問題に直面しました:クロム拡張機能はクロスドメインリクエストを送信できますが、「Origin」プロパティはリクエストヘッダーに設定され、送信元のページのURLに等しくなります
すべて問題ありませんが、Habrahabrサーバーは、目的のOrginとは異なる要求の受け入れを拒否します。
そして、ここでファビコンの方法が助けになります。これについて説明します( これについて私が最初に考えることはないでしょう )。
ファビコン法
また、iframeを使用してクロスドメインリクエストを行うことにしました(コンテンツスクリプトもそこに接続されているため)。 しかし、問題は私が見つけることができる最小のページです(ただし、長くは見ていませんでした)-これは「404エラー」です。 もちろん、これは私には合わず、「代替」ソリューションを探し始めました。
拡張機能は、写真に加えて何も存在しないページ( 例:http://example.com/example.png )にさえ接続できることに気づきました。
タスクがドメインusername1.habrahabr.ru (またはhabrahabr.ru )からドメインusername2.habrahabr.ruにリクエストを送信することだったことを思い出させてください。
そして、私の拡張機能で「画像で検索」を使用して、次のように解決しました:アイコンの代わりに、次のURLがロードされる固定幅と高さの境界線なしのiframeを配置します: http : //username2.habrahabr.ru/favicon.ico 。 このiframeにコンテンツスクリプトが挿入され、拡張機能( chrome.extension.connectを使用 )を介してメインページ( username1.habrahabr.ru )と通信します。 メインページのスクリプトは拡張機能にリクエストを送信し、それをiframeに送信し、それを送り返し、拡張機能はスクリプトに応答を返します。
以下に、Chrome拡張機能でクロスオリジンリクエストを送信する方法を示します。
フィードバックと提案を楽しみにしています!