2012-04-27 10 views
0

jQuery Color Picker Pluginに基づいてブックマークレットを作成しようとしています。ページのヘッダー(example)にJavaScriptファイルを含めると、すべて正常に動作しますが、ブックマークレットからページにスクリプトを追加すると、カラーピッカーは決して初期化されません(example)。わかりやすくするためにjsを単純化しました。jQueryが必要なブックマークレットが動作しない

はここでブックマークレットのコードです:

javascript:(function()%20{_my_script=document.createElement('script');_my_script.type='text/javascript';_my_script.src='http://forwardbeats.com/sandbox/colorpicker.js';document.getElementsByTagName('head')[0].appendChild(_my_script);})(); 

スクリプトがうまくページに追加されており、実行されているようだが、ピッカーが決して初期化されません取得します。何が間違っているかもしれないかに関するアイデア?

注:私は通常、jQueryのテストを始めますが、この例ではすでにページ上にあると仮定しています。

編集:私は問題を見つけて解決しました。似たような状況の人を助けることを希望して、私の答えを以下に掲示します。

+0

どうしてあなたのブックマークレットに '%20'がありますか?構文エラーが発生します。 –

+0

本当に?私はそれを知らなかった!私が見たほとんどのブックマークレットでは、スペースは '%20'としてエンコードされています。 – dpcasady

+0

コンソールをチェックして、スクリプト要素が追加されているかどうかを確認して、除外することができます。 – Kerstomaat

答えて

0

ブックマークレットには問題はありませんでしたが、私が含んでいたjsファイルです。何らかの理由で、コードがページに含まれていたときに正常に機能しましたが、ブックマークレットによって追加されたときは正常に機能しませんでした。

ブックマークレットを使用しているとき、スクリプトは登録前にカラーピッカーの初期化関数を呼び出そうとしていました。私が問題を解決するためにしなければならなかったのは、私がcolorPickerInit()から電話をかけていた場所の変更でした。以前は、colorPickerInit()に登録されている関数の呼び出しを担当するeye()の後に呼び出していました。 colorPickerInit()eye()に移動すると、すべてが正しく機能しています!

関連する問題