书签时Javascript意外标识符

时间:2012-07-15 19:21:26

标签: javascript bookmarklet

我有这个代码可以正常工作:

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();
}

但是当我尝试通过bookmarkleter压缩它时,我有"意外的标识符"错误

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();}})();

建议?

感谢

1 个答案:

答案 0 :(得分:3)

不确定这是否是书签管理器中的错误,但如果要将所有内容挤入一行,则需要在document.getElementsByTagName("head")[0].appendChild(script_tag);之前使用分号。

一旦这样做,意外的标识符错误就会消失。您将收到一个新的错误" main未定义"除非你事先已经定义了main