サファリ拡張機能から jQuery を Web ページに挿入したいだけです。ただし、jQuery を start/endscript として追加するとすべてのページに挿入され、ブラウジングが遅くなるため、一部のページのみです。onload 関数を使用して script タグを作成してみました。
var node = document.createElement('script');
node.onload = function(){
initjquerycheck(function($) {
dosomethingusingjQuery($);
});
};
node.async = "async";
node.type = "text/javascript";
node.src = "https://code.jquery.com/jquery-2.0.3.min.js";
document.getElementsByTagName('head')[0].appendChild(node);
jqueryがロードされているかどうかを確認するには、次を使用します。
initjquerycheck: function(callback) {
if(typeof(jQuery) != 'undefined'){
callback(jQuery);
}else {
window.setTimeout(function() { initjquerycheck(callback); }, 100);
}
}
しかし、typeof(jQuery) は未定義のままです。(console.log()を使用して確認しました)。デバッグ コンソールから console.log(typeof(jQuery)) を呼び出した場合にのみ、「関数」が返されます。それを修正する方法はありますか?前もって感謝します!