2009-10-26 3 views
5

Fully offenbaren, dass ich weiß Javascript nicht, ich versuche diese Javascript zu bekommen:JavaScript Bookmarklet und URL-Codierung

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'; 

als Bookmarklet zu arbeiten, um eine URL dieses Format zu senden:

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 

an den W3C-Validator.

Ich bin URL-Codierung des Javascript mit this encoder, aber natürlich mache ich etwas falsch, entweder in meinem Javascript oder in den Prozess der Encodierung.

Jeder hat einige Ideen speziell oder im Allgemeinen über Javascript Bookmarklets und URL-Encoding? Vielen Dank.

Antwort

5

Zwei Fehler:

  1. Sie müssen die "href" Mitglied des Standortes Objekt zuzugreifen:

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

  2. Sie haben ungültige JavaScript:

    javascript: location = 'http://validator.w3.org/check?uri=' + escape (Lage) PLUS SIGN UND QUOTE FEHLT HIER & doctype = Inline & charset = erfassen + automatisch & ss = 1 & Gruppe = 0 & Benutzer-Agent = W3C_Validator/1.654 ';

Ich empfehle diese:

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

Danke für die Hilfe. Ich dachte, ich hätte zumindest ein paar Dinge falsch gemacht. Was ich damit fertig habe, ist folgendes: 'javascript: (function() {window.location.href = 'http: //validator.w3.org/check? Uri =' + escape (window.location) + '& doctype = Inline & SS = 1 & Gruppe = 0 & User-Agent = W3C_Validator/1.654';})() ' Ich musste zurück zu der API bei W3C und herausfinden, was ich falsch mit dem Format der Anfrage URL in Bezug auf des Zeichensatzes der zu überprüfenden Seite. – markratledge

+0

'window.location.href = http: // foo.com' ist nicht notwendig. 'location = http: // foo.com' funktioniert gut. –