2

これが可能かどうかはわかりませんが、その理由の 1 つは、用語がどうなるか見当がつかないからです...

とりわけ、ユーザーがステータスバーのアイコンをクリックすると小さなウィンドウがスライドし、そのウィンドウ内に Web サイトのログインページが表示される機能を持つ拡張機能を作成したいと考えています。もちろん、その後は通常どおりログインし、Cookie や認証は通常どおり処理されます。

適切なオーバーレイ/クロム機能/名前空間を見つけるためにGoogleが何をすべきかわかりません。また、ページのソースをAJAXにしたくありません。実際のページをサーバーから直接ロードしたいのですが(セキュリティ上の理由から)、ユーザーがページ上で見ているものを傍受したい(一種のグリースモンキースタイル、私は推測します)フォームフィールドとヘッドのみが表示され、「パスワードを忘れましたか」などの情報は表示されません。また(そして、上記のいずれかが可能であれば、これも同様であるはずです)、サーバーの応答を傍受して、必要なことを実行した後(これを台無しにしたくありません)おそらくトラブルに巻き込まれずにはいられません) ユーザーには「やったね!」のようなメッセージが表示されます。サーバーの通常の出力ではなく、同じスライドアウトウィンドウで。

だから私は質問は次のとおりだと思います:方法はありますか:

  1. クリックすると非メニューウィンドウがスライドアウトします。
  2. そのウィンドウにライブ Web ページをロードし、
  3. ライブページの出力をサイトに残したまま変更しますか?

ログインページは暗号化されており、ログイン/パスワードは極秘と見なされているため、セキュリティを可能な限り尊重し、ajax や cookie-moding などのより単純な手法を試してはいけません。

ありがとう!

4

2 に答える 2

3

これは例です:

最初に、ログイン ページを表示する iframe 要素を含む xul オーバーレイ (login.xul) を作成します。

<?xml version="1.0"?>
<overlay id="login-window-vb" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <window id="main-window">
          <vbox>
            <iframe id="login-frame" src="http://yoursite.com/custom-login" style="display:none;">

           </iframe>
          </vbox>
    </window>

</overlay>

ユーザーがステータスバーからログインアイコンをクリックした場合にのみiframeを表示できるように、表示スタイルを「なし」に設定していることに注意してください。

次に、このオーバーレイをマニフェスト ファイルに登録します。

content     yourextension    chrome/content/
overlay chrome://browser/content/browser.xul chrome://yourextension/content/login.xul

次に、ステータス バーにログイン アイコンを表示する別のオーバーレイを追加します。

    <?xml version="1.0"?>
    <overlay id="login-status" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<script type="application/x-javascript">
function ShowLogin() {
// get the login iframe and display it
var loginBox = document.getElementById('login-frame');
loginBox.style.display = "";
loginBox.height = "200px";
}
</script>

    <statusbar id="status-bar">
        <statusbarpanel id="login-icon" image="" label="Login" oncommand="ShowLoginBox()" />
    </statusbar>

    </overlay>

このオーバーレイを前のオーバーレイと同じ方法で登録します。

これで、iframe はサーバーからログイン ページを表示し、Cookie を登録します。Greasmonkey スクリプトもこの iframe に到達すると思います。

于 2009-05-15T13:57:16.600 に答える
0

#1 については、「Firefox はこのパスワードを記憶する必要がありますか?」を示すコードを探します。

#2 についてはよくわかりませんが、Firefox のメイン HTML ウィンドウも XUL であるため、なぜそれが可能ではないのかわかりません。

3番はちょっと難しいです。まず第一に、Web サイトは常に変化しています。では、どの部分を除外する必要があるかをどのように知る予定ですか? ページの読み込み時に DOM を変更しても問題はありません (例として Greasemonkey を見てください。まさにそれを行っています)。

于 2009-05-15T12:59:25.040 に答える