0

このチュートリアルのおかげで<script src="/widget/widget.js?type=normal" type="text/javascript"></script>、ホストWebサイトにjQueryがない場合にjQueryを動的にロードする方法(呼び出しなど)を知っています:

(function () {
    var jQuery;

    if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2') {
        var script_tag = document.createElement('script');
        script_tag.setAttribute("type", "text/javascript");
        script_tag.setAttribute("src", pathWidget + "/scripts/jquery-1.7.min.js");

        if (script_tag.readyState) {
            script_tag.onreadystatechange = function () { // For old versions of IE
                if (this.readyState == 'complete' || this.readyState == 'loaded') {
                    scriptLoadHandler();
                }
            };
        } else {
            script_tag.onload = scriptLoadHandler;
        }
        (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
    } else {
        jQuery = window.jQuery;
        main();
    }

    function scriptLoadHandler() {
        jQuery = window.jQuery.noConflict(true);
        main();
    }

    function main() {
        jQuery(document).ready(function ($) {

        });
    }
})();

さて、今私はjqueryライブラリに対して同じことをしたいと思います。jQueryCycleとしましょう。

私は試してみました:

var script_cycle = document.createElement('script');
script_cycle.setAttribute("type", "text/javascript");
script_cycle.setAttribute("src", pathWidget + "/scripts/jquery.cycle.all.js");

後 :

script_tag.setAttribute("src", pathWidget + "/scripts/jquery-1.7.min.js");

しかし、サイクルをドキュメントレディにロードすると、次のエラーが発生します。

$("#myRotator").cycle is not a function

私はどこが間違っていますか?

4

2 に答える 2

1

プラグインがロードされているかどうかを確認してみてください。

if(!jQuery().cycle) {
  var script_cycle = document.createElement('script');
  script_cycle.setAttribute("type", "text/javascript");
  script_cycle.setAttribute("src", pathWidget + "/scripts/jquery.cycle.all.js");
  (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_cycle);
}
于 2012-05-30T07:13:50.047 に答える
0

$ .getScript()を使用して外部Javascriptファイルをロードできます。

if(!jQuery().cycle) {
    $.getScript('/scripts/jquery-1.7.min.js', 
    function() {});
}
于 2012-05-30T07:19:38.593 に答える