2

我有一个运行 Woocommerce 和 WPML 多语言插件的 wordpress 网站。在结帐页面上,我遇到了一个 javascript 错误(而且我不擅长 js)。

错误是:

未捕获的类型错误:对象函数 (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 回答
0

我同意上面的帖子,但这也应该有所帮助:您的错误意味着当您调用/使用 .removeCookie 函数时,您的代码无法找到/找到使用该名称执行的函数/方法。确保使用 .removeCookie 方法的文件与使用代码的文件位于同一文件夹中,并确保您的文件“包含”使用 .removeCookie 方法的文件。也有可能您可能需要在“.removeCookie”之前编写其他内容希望这会导致解决方案。此外,如果您对所有代码都使用 Wordpress,您可能希望获得有关 Wordpress 的帮助。也许它安装不正确或导致代码故障...

于 2013-07-10T02:38:39.420 回答