0

次のようなブックマークレットがあります。

javascript:(function()%7Bvar%20x=document.createElement('SCRIPT');x.type='text/javascript';x.src='http://tmxhost.com/mail/clippad.js?'+(new%20Date().getTime()/100000);document.getElementsByTagName('head')%5B0%5D.appendChild(x);%7D)();

しかし、タップしても、もう一度タップするまで何も起こらず、DOM が書き込まれます。理由を知っている人はいますか?

4

1 に答える 1

1

ブックマークレットは、このスクリプトをページに追加します: http://tmxhost.com/mail/clippad.js

そのスクリプトには 2 つの部分があります。1.) jQuery をページに追加します。2.) jQuery を使用します。

問題は、2 番目の部分が実行される前に jQuery がロードされたことを確認できないことです。そのため、通常、2 番目の部分は最初の試行で失敗します。

ブックマークレットを 2 回目にクリックすると、jQuery の読み込みが完了しているため、2 番目の部分は期待どおりに実行されます。

ブックマークレットで jQuery を使用するための優れたツールとチュートリアルがいくつかあります: https://www.google.com/search?q=jquery+bookmarklet

考慮すべきもう 1 つの点は$(document).ready、ドキュメントの準備が整った後にブックマークレットがほとんどの場合使用されるため、ブックマークレットでは使用が一般的に無意味であることです。

于 2012-12-10T08:42:58.997 に答える