3

私の目標は、ある種の「Javascriptライブラリ」を作成することです。これを使用して、Webを閲覧するときにページを操作し、グリースモンキースクリプトとして動的にロードするつもりです。アイデアは、 ""winwindow、 " doc"-> document、 " win.loc"-> win.location、およびその他のいくつかの便利なマッピングにマッピングすることですが、あなたはアイデアを得ることができます。構文を取得するための例をいくつか挙げていただければ、残りを推定しますか?本当にありがとう。

4

2 に答える 2

11

次のように変数を割り当てるだけです。

var win = window;
var doc = document;

ただし、この場合、オブジェクトwin.locを変更せずに割り当てることはできません。windowまた、ウィンドウオブジェクトは、を割り当てた後、またはなどwinで取得できるため、特別です(グローバルオブジェクトです)。win.winwin.win.winwindow

いずれの場合でも、オブジェクトに割り当てることができます。locwindow

win.loc = window.location;

// Can now be referenced as:
loc; // (window is the global object)
win.loc;
win.location;
window.location;

これが、あなたが求めていることを実行する方法です。ほとんどの場合、これを行うべきではありません。通常、フレームワークは、適切な名前で1つのグローバル変数のみを使用するように定義されています。

var Blixt = (function () {
    var localVariable = 123;

    return {
        loc: window.location,
        myFunc: function () {
            alert(localVariable);
        }
    };
})();

ただし、JavaScriptに慣れていない場合、これはかなり複雑なことなので、JavaScriptを初めて使用する場合は、最初から始めるのは適切なプロジェクトではありません。

于 2009-06-25T19:57:53.777 に答える
0

**注:**これは、実際には上記のBlixtの回答を明確にするためのリクエストであり、1つのコメントには当てはまりません。

わかりました、ありがとう-これはかなり良い答えです。私はそれにいくつかの説明をしたいと思います:

  • 上記の構文を使用してエイリアスを定義すると、例外がない場合とまったく同じようにwin.loc動作しますか?(念のため)window.location

  • ほとんどついてきましたが、機能のある部分がBlixtわかりませんでした。この関数を定義することで期待される動作/結果は何ですか?

  • はJSに 少し慣れていませんが、なぜこれが良い考えではないのですか?どのような悪影響が生じる可能性がありますか?C-l javascript:win.loc=doc.ref<ENTER>Ctrlキーを押しながら別のタブのリンクをクリックして開いたタブのように、複雑すぎることはありません。

  • そういえば、これはブラウザごとに違うのではないかと思いますが、js:URIスキームを定義してマッピングする方法はありjavascript:ますか?素晴らしい答えをありがとう。

于 2009-06-25T20:32:48.433 に答える