2

多言語用の Woocommerce と WPML プラグインで実行されているワードプレス Web サイトを持っています。チェックアウト ページで、javascript エラーが発生しました (そして、js が苦手です)。

エラー:

キャッチされていない TypeError: オブジェクト関数 (a,b){return new e.fn.init(a,b,h)} にはメソッド 'removeCookie' がありません

ここでエラーと呼ばれるもの:

jQuery(document).ready(function(){
if(jQuery.cookie != undefined) {
    // Check if cookie are enabled
    jQuery.cookie('wpml_browser_redirect_test', '1');
    var cookie_enabled = jQuery.cookie('wpml_browser_redirect_test') == 1;
    jQuery.removeCookie('wpml_browser_redirect_test');
    ...

関数を含むファイルは次のとおりです。

(function ($, document, undefined) {

var pluses = /\+/g;

function raw(s) {
    return s;
}

function decoded(s) {
    return decodeURIComponent(s.replace(pluses, ' '));
}

$.cookie = function (key, value, options) {

    // key and at least value given, set cookie...
    if (value !== undefined && !/Object/.test(Object.prototype.toString.call(value))) {
        options = $.extend({}, $.cookie.defaults, options);

        if (value === null) {
            options.expires = -1;
        }

        if (typeof options.expires === 'number') {
            var days = options.expires, t = options.expires = new Date();
            t.setDate(t.getDate() + days);
        }

        value = String(value);

        return (document.cookie = [
            encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
            options.path    ? '; path=' + options.path : '',
            options.domain  ? '; domain=' + options.domain : '',
            options.secure  ? '; secure' : ''
        ].join(''));
    }

    // key and possibly options given, get cookie...
    options = value || $.cookie.defaults || {};
    var decode = options.raw ? raw : decoded;
    var cookies = document.cookie.split('; ');
    for (var i = 0, parts; (parts = cookies[i] && cookies[i].split('=')); i++) {
        if (decode(parts.shift()) === key) {
            return decode(parts.join('='));
        }
    }

    return null;
};

$.cookie.defaults = {};

$.removeCookie = function (key, options) {
    if ($.cookie(key, options) !== null) {
        $.cookie(key, null, options);
        return true;
    }
    return false;
};

})(jQuery, document);

私はjavascriptを知らないので、どう考えればいいのか本当にわかりません。「オブジェクト関数にはメソッドがありません」がよくある問題であることは知っています。他の投稿を見てきましたが、わかりません。

だからみんな(そして女の子)、私はこれについて助けが必要です.

ありがとう

ブルーノ

4

2 に答える 2

0

これは、jQuery.cookie プラグインを含めなかった場合に発生します。

于 2013-07-09T21:54:13.453 に答える