Pergunta
meu objetivo é criar uma espécie de "biblioteca Javascript," se você poderia chamá-lo assim. Eu estou com a intenção de usá-lo apenas para manipular páginas como eu navegar na web, carregá-lo dinamicamente como um script Greasemonkey. A idéia é ter "win
" são mapeados para window
, "doc
" -> document
, "win.loc
" -> win.location
, e alguns outros mapeamentos de conveniência, mas você começa a idéia. você pode apenas dar-me alguns exemplos para mim para pegar a sintaxe de, e eu vou extrapolar o resto? Muito obrigado.
Solução
Apenas variáveis ??atribuir assim:
var win = window;
var doc = document;
Você não pode win.loc
atribuir sem modificar o objeto window
, neste caso, no entanto. Além disso, o objeto de janela é especial porque depois de atribuir win
, você vai ser capaz de obtê-lo com win.win
ou win.win.win
e assim por diante (window
é o objeto global.)
Em qualquer caso, você pode loc
ainda atribuir ao objeto window
:
win.loc = window.location;
// Can now be referenced as:
loc; // (window is the global object)
win.loc;
win.location;
window.location;
Agora que é como fazer o que você está pedindo. Muito provavelmente você não deve fazer isso. Normalmente, os quadros são definidos para usar-se apenas uma variável global, com um nome adequado:
var Blixt = (function () {
var localVariable = 123;
return {
loc: window.location,
myFunc: function () {
alert(localVariable);
}
};
})();
Tudo isso é coisa muito complexa, se você não estiver familiarizado com JavaScript, porém, por isso não é um projeto bom para começar se você é novo para JavaScript.
Outras dicas
** NOTA:. ** Este é realmente um pedido de esclarecimento da resposta de Blixt acima, que não caberiam em um comentário
Ok, obrigado - esta é uma resposta muito boa. Eu só gostaria de fazer alguns esclarecimentos a ele:
-
Se eu definir os aliases usando a sintaxe que você deu acima,
win.loc
vai se comportar exatamente o mesmo quewindow.location
sem quaisquer excepções? (Basta ter certeza) -
Eu segui a maior parte dele, mas a parte com a função
Blixt
eu não entendi. Qual é o comportamento esperado / resultado de definir esta função? -
I am tipo novo para JS, mas por que isso não é uma boa ideia? Que consequências negativas que poderia ter? Eu estou olhando apenas para fazer coisas como
C-l javascript:win.loc=doc.ref<ENTER>
para uma aba que foi aberta por CTRL-clicar em um link em outra guia, nada muito complexo. -
Falando nisso, e tenho a sensação de que este pode ser diferente de navegador para navegador, mas existe alguma maneira possível para me definir um esquema URI
js:
e mapeá-lo para ojavascript:
? Obrigado pela ótima resposta.