2009-10-26 14 views
5

completamente rivelare che io non so Javascript, sto cercando di ottenere questo Javascript:JavaScript bookmarklet e codifica URL

javascript:location = 'http://validator.w3.org/check?uri=' +escape(location)&doctype=Inline&charset=detect+automatically&ss=1&group=0&user-agent=W3C_Validator/1.654'; 

a lavorare come un bookmarklet per inviare un URL di questo formato:

http://validator.w3.org/check?uri=http://www.wordpress.org&charset=%28detect+automatically%29&doctype=Inline&ss=1&group=0&user-agent=W3C_Validator%2F1.654 

al valdiatore W3C.

Sto codificando l'URL con Javascript this encoder, ma ovviamente, sto facendo qualcosa di sbagliato, nel mio Javascript o nel processo di codifica.

Qualcuno ha qualche idea in particolare o in generale sui bookmarklets Javascript e sulla codifica URL? Grazie.

risposta

5

due errori:

  1. È necessario accedere al membro "href" dell'oggetto posizione:

    window.location. href = http://foo.com

  2. Hai valida JavaScript:

    javascript: location = 'http://validator.w3.org/check?uri=' + sfuggire (posizione) SEGNO PIÙ E QUOTE manca qui & doctype = Inline & charset = rilevare + automaticamente & ss = 1 & group = 0 & user-agent = W3C_Validator/1.654 ';

Mi consiglia di utilizzare questo:

javascript:(function(){window.location.href='http://validator.w3.org/check?uri='+escape(window.location.href)+'&doctype=Inline&charset=detect+automatically&ss=1&group=0&user-agent=W3C_Validator/1.654';})() 
+1

Grazie per l'aiuto. Ho pensato di avere almeno un paio di cose sbagliate. Quello che ho finito con questo funziona è questo: 'javascript: (function() {window.location.href = 'http: //validator.w3.org/check? Uri =' + escape (window.location) + '& doctype = Inline & ss = 1 & group = 0 & user-agent = W3C_Validator/1.654';})() ' Ho dovuto tornare all'API al W3C e scoprire cosa stavo facendo male con il formato dell'URL della richiesta in termini del set di caratteri della pagina da controllare. – markratledge

+0

'window.location.href = http: // foo.com' non è necessario. 'location = http: // foo.com' funziona bene. –