문제

저의 목표는 일종의 "JavaScript 라이브러리"를 만드는 것입니다. 웹을 탐색 할 때 페이지를 조작하는 데 사용하여 Greasemonkey 스크립트로 동적으로로드하려고합니다. 아이디어는 "win"매핑하십시오 window, "doc" -> document, "win.loc" -> win.location, 그리고 몇 가지 다른 편의 매핑이지만, 당신은 아이디어를 얻습니다. 구문을 집어 들기 위해 몇 가지 예제를 알려 주시면 나머지를 추정하겠습니다. 정말 고마워.

도움이 되었습니까?

해결책

SO와 같은 변수를 할당하기 만하면됩니다.

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;

이제 그것이 당신이 요구하는 일을하는 방법입니다. 아마도 당신은 아마도 그렇지 않아야합니다 이 작업을 수행. 일반적으로 프레임 워크는 적절한 이름으로 하나의 글로벌 변수 만 사용하도록 정의됩니다.

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

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

JavaScript에 익숙하지 않은 경우이 모든 것이 매우 복잡한 것들이므로 JavaScript를 처음 접한다면 시작하기에 좋은 프로젝트가 아닙니다.

다른 팁

** 참고 : ** 이것은 실제로 위의 Blixt의 답변을 설명하기위한 요청이며, 이는 하나의 의견에 맞지 않습니다.

자, 감사합니다 - 이것은 꽤 좋은 대답입니다. 나는 그것에 대해 약간의 설명을하고 싶습니다.

  • 위에서 준 구문을 사용하여 별칭을 정의하면 win.loc 행동 할 것입니다 바로 그거죠 동일합니다 window.location 예외없이? (그냥 확인)

  • 나는 대부분을 따랐지만 부분은 Blixt 내가 이해하지 못한 기능. 이 기능을 정의 할 예정인 동작/결과는 무엇입니까?

  • ~이다 JS를 처음 접지 만 왜 이것이 좋은 생각이 아닌가? 어떤 부정적인 결과가있을 수 있습니까? 난 그냥 같은 일을 찾고 있어요 C-l javascript:win.loc=doc.ref<ENTER> 다른 탭에서 링크를 클릭하여 열린 탭의 경우 너무 복잡한 것은 없습니다.

  • 말하자면, 이것이 브라우저와 브라우저마다 다를 수 있다는 느낌이 들지만, 가능한 방법이 있습니까? js: URI 체계 및이를 매핑하십시오 javascript: 하나? 훌륭한 대답에 감사드립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top