私の目標は、ある種の「Javascriptライブラリ」を作成することです。これを使用して、Webを閲覧するときにページを操作し、グリースモンキースクリプトとして動的にロードするつもりです。アイデアは、 ""win
をwindow
、 " doc
"-> document
、 " win.loc
"-> win.location
、およびその他のいくつかの便利なマッピングにマッピングすることですが、あなたはアイデアを得ることができます。構文を取得するための例をいくつか挙げていただければ、残りを推定しますか?本当にありがとう。
2 に答える
次のように変数を割り当てるだけです。
var win = window;
var doc = document;
ただし、この場合、オブジェクトwin.loc
を変更せずに割り当てることはできません。window
また、ウィンドウオブジェクトは、を割り当てた後、またはなどwin
で取得できるため、特別です(グローバルオブジェクトです)。win.win
win.win.win
window
いずれの場合でも、オブジェクトに割り当てることができます。loc
window
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を初めて使用する場合は、最初から始めるのは適切なプロジェクトではありません。
**注:**これは、実際には上記のBlixtの回答を明確にするためのリクエストであり、1つのコメントには当てはまりません。
わかりました、ありがとう-これはかなり良い答えです。私はそれにいくつかの説明をしたいと思います:
上記の構文を使用してエイリアスを定義すると、例外がない場合とまったく同じように
win.loc
動作しますか?(念のため)window.location
ほとんどついてきましたが、機能のある部分が
Blixt
わかりませんでした。この関数を定義することで期待される動作/結果は何ですか?私はJSに 少し慣れていませんが、なぜこれが良い考えではないのですか?どのような悪影響が生じる可能性がありますか?
C-l javascript:win.loc=doc.ref<ENTER>
Ctrlキーを押しながら別のタブのリンクをクリックして開いたタブのように、複雑すぎることはありません。そういえば、これはブラウザごとに違うのではないかと思いますが、
js:
URIスキームを定義してマッピングする方法はありjavascript:
ますか?素晴らしい答えをありがとう。