2009-10-26 20 views
5

pełni ujawniając, że nie wiem, Javascript, Próbuję uzyskać ten JavaScript:JavaScript bookmarklet i URL kodowanie

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

pracować jako bookmarklet aby wysłać adres URL tego formatu:

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 

do waldiatora W3C.

Jestem URL kodowania JavaScript z this encoder, ale oczywiście robię coś złego, albo w moim JavaScript lub w trakcie kodowania go.

Ktoś ma jakieś pomysły w ogóle lub ogólnie o skryptozakładach Javascript i kodowaniu URL? Dzięki.

Odpowiedz

5

dwa błędy:

  1. Trzeba otworzyć "href" członek obiektu Lokalizacja:

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

  2. Masz nieprawidłowy javascript:

    javascript: location = 'http://validator.w3.org/check?uri=' + uciec (lokalizacja) ZNAK PLUS i cytuje tu brakuje & doctype = Inline & charset = wykryć + automatycznie & ss = 1 & group = 0 & user-agent = W3C_Validator/1.654 ';

polecam za pomocą tego:

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

Dzięki za pomoc. Pomyślałem, że mam co najmniej kilka rzeczy nie tak. To, do czego doszedłem, to: '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';})() ' Musiałem wrócić do API na W3C i dowiedzieć się, co robiłem źle z formatem adresu URL żądania w kategoriach zestawu znaków strony do sprawdzenia. – markratledge

+0

'window.location.href = http: // foo.com' nie jest konieczne. 'location = http: // foo.com' działa dobrze. –