views:

395

answers:

1

Fully disclosing that I do not know Javascript, I'm trying to get this Javascript:

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

to work as a Bookmarklet in order to send a URL of this format:

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

to the W3C valdiator.

I'm URL encoding the Javascript with this encoder, but of course, I'm doing something wrong, either in my Javascript or in the process of encoding it.

Anyone have some ideas in particular or in general about Javascript bookmarklets and URL encoding? Thanks.

+2  A: 

Two Errors:

  1. You need to access the "href" member of the location object:

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

  2. You have invalid JavaScript:

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

I recommend using this:

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';})()
jakemcgraw
Thanks for the help. I figured I had at least a few things wrong. What I ended up with that works is this:`javascript:(function(){window.location.href='http://validator.w3.org/check?uri='+escape(window.location)+'})()`I had to go back to the API at W3C and find out what I was doing wrong with the format of the request URL in terms of the character set of the page to be checked.
songdogtech