1

私はこの拡張機能を持っていますが、問題は発生していないようです。しかし、使用しようとするとすぐにエラー メッセージが表示されます: オブジェクトはプロパティまたはメソッド 'n2name' をサポートしていません。

エラーのスクリーンショット

プラグイン コードでエラーは報告されません (参照用にスニペットを以下に貼り付け、最後に完全なファイルへのリンクを付けます)。

なぜこれが機能しないのか、誰にもわかりませんか?

注: 私はこのオープンソース プロジェクトの問題を修正しようとしています: https://github.com/n2cms/n2cms/issues/279そして、その Github バグに関するより有用な詳細があるかもしれません。

この質問があいまいで、長いコード スニペットの場合は申し訳ありません (そのほとんどはおそらく関係ありません)。しかし、どんな助けも本当にありがたいです

/**
* n2name 0.2
*/

(function($) {

    /* some code removed for brevity */

    $.fn.n2name = function(options) {
        var invokeUpdateName = function(){
            updateName(options.titleId, options.nameId, options.whitespaceReplacement, options.toLower, options.replacements, options.keepUpdatedBoxId);
        };
        if(options.keepUpdatedBoxId){
           /* more code removed for brevity */
        }
    };
})(jQuery);;

上記のコード スニペットが役に立たない場合は、jquery.n2name.js の完全なソースへのリンク: https://github.com/n2cms/n2cms/blob/4469580fcdd9c91f7576f07c3d2c8a4479ed6ce9/src/Mvc/MvcTemplates/N2/Resources/Js/plugins/jquery .n2name.js

4

1 に答える 1

1

「オブジェクトはプロパティまたはメソッドをサポートしていません<name>」(IE) および「<name>は関数ではありません」(Chrome) というエラーは通常、jQuery プラグインが呼び出される前に正常にロードされなかったことを意味します。

これは、失敗したリクエスト (Dev Tools の [ネットワーク] タブを確認)、プラグインのscriptタグまたは/属性scriptを持つタグの忘れ/置き忘れが原因である可能性があります。別の原因として考えられるのは、プラグインのスクリプトに構文エラーが含まれていることです (その場合は、Dev Tools の [コンソール] タブを確認してください)。deferasync

同じページに複数のバージョンの jQuery がある (OP のリンクされた GH の問題でコメントされているように) 別の可能性があります。ボイラープレートにラップされたプラグインは、プラグイン スクリプトの読み込み時に(function(){}(jQuery));参照される jQuery オブジェクトにのみ追加されるためです。window.jQuery


この特定のケースでは、OP で VS 内のローカルホストからプラグインをロードする際に問題が発生していました。

私は同様の問題を見てきました。URI スキーム//somecdn.com/library.jsからファイルをロードするときに、プロトコルのない URL (例: )を使用するのは無効であることを付け加えておきます。file:///これは、プロトコルのない URL が親ドキュメントから使用されているプロトコルを「継承」し、プロトコルでfile:///はないためです。ローカル サーバーからロードする場合 (例: のように提供さhttpれる親ドキュメントhttp://localhost/library.js)、プロトコルのない URL は正常に機能するはずです。

于 2013-08-17T00:20:32.977 に答える