これは、jQuery ブックマークレットを作成するために見つけたスクリプトで、3 行のコードを追加しました。問題は、jQuery コードに (セレクター用の) 引用符がたくさんあり、ブックマークレットをhref="javascript:code"に配置する必要があるため、すべてが href の二重引用符で台無しになることです。これが私のコードの外観です。多くの方法で二重引用符をエスケープしようとしましたが、どれもうまくいきませんでした。この問題に対処する方法はありますか?
<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>
ブックマークレットのリンクをクリックすると、firebug は次のように言います: SyntaxError: missing } 関数本体の後にあります
が、(html リンクを使用せずに) javascript のみを実行すると、正常に実行されます。