2012-04-07 11 views
2

単純なブックマークレットを書くことを考えています。 質問が重複している可能性がある場合は、私がそれを指摘してください。なぜなら、私は見つけることができなかったからです。予期しないトークンエラー:ブックマークレットで

ブックマークレットを使用して現在のページjqueryを有効にして、特定のjquery apisを使用しようとしています。

Uncaught SyntaxError: Unexpected token ILLEGAL

それ以上のIは、私は同じコードライン・バイ・ラインコンソールで実行した場合、それが動作する以下のサンプルブックマークレット

javascript:(function(){ 
var d=document.createElement('script'); 
d.setAttribute('src', 'http://code.jquery.com/jquery-latest.js'); 
document.head.appendChild(d); 
$('a').each(function(){ 
    alert($(this).attr('src')); 
}); 
})() 

を使用して取得エラー。事前

+0

ahh、おそらく実行するとjQueryがまだロードされていないためです。ブレークポイントを置くと、時間が増えます。 –

+0

@JibiAbraham:Trueの間は、SyntaxErrorが発生しません。 – ThiefMaster

+0

ええ、理想的には、SyntaxError – Dhiraj

答えて

1

おかげで、jQueryのページまで待ちが完全にロードされていることを確認しscript要素に負荷ハンドラを追加します。これは私のブラウザで働いていた:

javascript:(function(){ 
var d=document.createElement('script'); 
d.src = 'http://code.jquery.com/jquery-latest.js'; 
d.onload = function(){ /* load handler here */ 
    $('a').each(function(){ 
    console.log($(this).attr('href')); 
    }); 
}; 
document.getElementsByTagName('head')[0].appendChild(d); 
})() 

私は少し(代わりにalertconsole.logを使用し、より古典的な方法でhead要素を取得し、直接作成script要素のプロパティとしてsrc属性を追加するには、コードを変更し、すべてのリンクのhref属性を記録してください)。