0

jQuery ColorPickerPluginに基づいてブックマークレットを作成しようとしています。ページのヘッダーにJavaScriptファイルを含めると()、すべてが正常に機能しますが、ブックマークレットからページにスクリプトを追加すると、カラーピッカーが初期化されません()。わかりやすくするために、jsを可能な限り簡略化しました。

ブックマークレットコードは次のとおりです。

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を最初にテストしますが、この例では、jQueryがすでにページ上にあると想定しています。

編集:私は問題を見つけて解決しました。同様の状況にある人を助けることができることを願って、以下に私の答えを投稿します。

4

1 に答える 1

0

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

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

于 2012-04-27T22:45:26.637 に答える