Reputation: 1175
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
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