Domanda

il mio obiettivo è creare una sorta di " Libreria Javascript, " se potessi chiamarlo così. Ho intenzione di usarlo per manipolare le pagine mentre navigo sul web, caricandolo in modo dinamico come uno script greasemonkey. L'idea è di avere & Quot; win & Quot; viene mappato su window, " doc " - gt &; document, " win.loc " - gt &; win.location e alcune altre mappature utili, ma hai l'idea. Puoi darmi solo alcuni esempi da cui ritirare la sintassi e io estrapolerò il resto? Grazie mille.

È stato utile?

Soluzione

Assegna semplicemente le variabili in questo modo:

var win = window;
var doc = document;

Non puoi assegnare win.loc senza modificare l'oggetto window in questo caso però. Inoltre, l'oggetto finestra è speciale perché dopo aver assegnato win, sarai in grado di ottenerlo con win.win o win.win.win e così via (loc è l'oggetto globale.)

In ogni caso, puoi ancora assegnare <=> all'oggetto <=>:

win.loc = window.location;

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

Ecco come fare quello che stai chiedendo. Molto probabilmente non dovresti farlo. Normalmente, i framework sono definiti per utilizzare solo una variabile globale, con un nome adatto:

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

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

Tutto ciò è piuttosto complesso se non hai familiarità con JavaScript, quindi non è un buon progetto per iniziare se non conosci JavaScript.

Altri suggerimenti

** NOTA: ** Questa è in realtà una richiesta di chiarimento della risposta di Blixt sopra, che non rientrerebbe in un commento.

Ok, grazie - questa è una risposta abbastanza buona. Vorrei solo fare alcuni chiarimenti:

  • Se definisco gli alias usando la sintassi che hai indicato sopra, win.loc si comporteranno esattamente lo stesso di window.location senza eccezioni? (Solo assicurandomi)

  • L'ho seguito per la maggior parte, ma non ho capito la parte con la funzione Blixt. Qual è il comportamento / risultato atteso dalla definizione di questa funzione?

  • I am kinda sono nuovo in JS, ma perché non è una buona idea? Quali conseguenze negative potrebbe avere? Sto solo cercando di fare cose come C-l javascript:win.loc=doc.ref<ENTER> per una scheda che è stata aperta facendo clic CTRL su un collegamento in un'altra scheda, niente di troppo complesso.

  • A proposito, e ho la sensazione che questo potrebbe essere diverso da browser a browser, ma c'è un modo per me di definire uno schema URI js: e mapparlo a javascript:? Grazie per l'ottima risposta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top