Question

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.

Was it helpful?

Solution

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';})()
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top