slwr
slwr

Reputation: 1175

Javascript unexpected identifier while bookmarkleting

I have this code that works fine:

if (typeof jQuery === "undefined" || jQuery.fn.jquery !== '1.4.2') {
var script_tag = document.createElement('script');
script_tag.setAttribute("type","text/javascript");
script_tag.setAttribute("src","http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
script_tag.onload = main; // Run main() once jQuery has loaded
script_tag.onreadystatechange = function () { // Same thing but for IE
if (this.readyState == 'complete' || this.readyState == 'loaded') main();
}
document.getElementsByTagName("head")[0].appendChild(script_tag);
} else {
    main();
}

but when i try to compress it through bookmarkleter I have "unexpected identifier" error

javascript:(function(){if(typeof%20jQuery===%22undefined%22%20||%20jQuery.fn.jquery%20!=='1.4.2'){var%20script_tag=document.createElement('script');script_tag.setAttribute(%22type%22,%22text/javascript%22);script_tag.setAttribute(%22src%22,%22http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js%22);script_tag.onload=main;script_tag.onreadystatechange=function(){if(this.readyState=='complete'%20||%20this.readyState=='loaded')main();}document.getElementsByTagName(%22head%22)[0].appendChild(script_tag);}else{main();}})();

suggestion?

thanks

Upvotes: 1

Views: 951

Answers (1)

Trott
Trott

Reputation: 70143

Not sure if this is a bug in bookmarkleter or not, but you need a semi-colon before document.getElementsByTagName("head")[0].appendChild(script_tag); if it's going to all be squeezed into one line like that.

Once you do that, the unexpected identifier error goes away. You will get a new error of "main is not defined" unless you have in fact already defined main previously.

Upvotes: 5

Related Questions