jquery のロードに依存するウィジェットを作成しています。以下を使用して、それとコードをロードしています。
(function () {
var jqueryVersion = (window.jQuery !== undefined) ? window.jQuery.fn.jquery.charAt(0) + window.jQuery.fn.jquery.charAt(2) : 0;
var jQuery;
/******** Called once jQuery has loaded ******/
function scriptLoadHandler() {
jQuery = window.jQuery.noConflict(true);
main();
}
/******** Load jQuery if not present *********/
if (parseInt(jqueryVersion) < 17) {
var script_tag = document.createElement('script');
script_tag.setAttribute("type", "text/javascript");
script_tag.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js");
script_tag.onload = scriptLoadHandler;
script_tag.onreadystatechange = function () { // Same thing but for IE
if (this.readyState === 'complete' || this.readyState === 'loaded') { scriptLoadHandler(); }
};
document.getElementsByTagName("head")[0].appendChild(script_tag);
} else {
jQuery = window.jQuery;
main();
}
function main() {
//my code goes in here
//leaving blank for now because I still get error
}
})();
私はここからそのほとんどを得ました: http://alexmarandon.com/articles/web_widget_jquery/
.on() メソッドを使用しているため、jquery 1.7 以降が必要です。1.7 より古い jquery を使用しているページでこれを実行すると、IE でエラーが発生することがあり、古いバージョンの jquery またはページ上の他の js と競合していると思われます。いくつかのエラー:
SCRIPT5007: 未定義または null 参照のプロパティ 'forceInt' を取得できません
SCRIPT5007: オブジェクトが必要です
SCRIPT5007: 未定義または null 参照のプロパティ 'easing' を取得できません
SCRIPT438: オブジェクトはプロパティまたはメソッド 'on' をサポートしていません
変更すると、これらのエラーはなくなります
jQuery = window.jQuery.noConflict(true);
に
jQuery = window.jQuery.noConflict();
私は何か間違ったことをしていますか?