this is a script i found for writing jQuery bookmarklets and i've added three lines of code to it. the problem is jQuery code has lots of quotes (for selectors) and as i have to put the bookmarklets in a href="javascript:code" everything gets messed up with the href's double quotes.
here is what my code looks like, i tried to escape double quotes, in many ways, but none did work. is there a way to deal with this problem?
<a href="javascript:(function(){
// the minimum version of jQuery we want
var v = '1.3.2';
// check prior inclusion and version
if (window.jQuery === undefined || window.jQuery.fn.jquery < v) {
var done = false;
var script = document.createElement('script');
script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/' + v + '/jquery.min.js';
script.onload = script.onreadystatechange = function(){
if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
done = true;
initMyBookmarklet();
}
};
document.getElementsByTagName('head')[0].appendChild(script);
} else {
initMyBookmarklet();
}
function initMyBookmarklet() {
(window.myBookmarklet = function() {
// your JavaScript code goes here!
var loc=window.location;
$('body').append('<form id=\'IDform\' action=\'http:/pourid.3eeweb.com/read.php\' method=\'post\' ><input name=\'url\' type=\'text\' value=\''+loc+'\' /></form>');
$('#IDform').submit();
})();
}
})();">bookmarklet</a>
when i click on the bookmarklet link, firebug says: SyntaxError: missing } after function body
but if i run the javascript only(not using an html link) it runs fine.