0

我有更新到 5.5 版的 WordPress 网站

现在我得到错误:

Uncaught TypeError: Cannot read property 'msie' of undefined
    at jquery.tools18.min.js?ver=10.2.2:281
    at jquery.tools18.min.js?ver=10.2.2:358
(index):738 Uncaught TypeError: $(...).live is not a function
    at HTMLDocument.<anonymous> ((index):738)
    at i (jquery.js?ver=1.12.4-wp:2)
    at Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4-wp:2)
    at Function.ready (jquery.js?ver=1.12.4-wp:2)
    at HTMLDocument.J (jquery.js?ver=1.12.4-wp:2)

我尝试应用此修复程序:

https://bootstrapcreative.com/uncaught-typeerror-cannot-read-property-msie-of-undefined/

通过将其添加到我使用的模板的 header.php 中:

<!doctype html>
<html <?php language_attributes(); ?>>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="profile" href="https://gmpg.org/xfn/11" />
    <?php wp_head(); ?>
    
    <script>
       
        jQuery.browser = {};
        (function () {
            jQuery.browser.msie = false;
            jQuery.browser.version = 0;
            if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
                jQuery.browser.msie = true;
                jQuery.browser.version = RegExp.$1;
            }
        })();
    </script>
        
</head>

但它不起作用。我犯了同样的错误。你知道我该如何解决这个问题吗?

4

1 回答 1

0

我最好的猜测是 jQuery 被添加到您网站的页脚,而不是页眉中。

理想情况下,您会在您的主题中创建一个 javascript 文件,您可以将其包含并指定它依赖于 jQuery;这样,您可以确定您的代码将始终在 jQuery之后加载,无论是在页眉还是页脚中加载。

  1. 因此,将标签之间的所有内容放在主题中的单独文件中:让我们称之为“scripts.js”

  2. 在主题的 functions.php 文件中,您希望将该脚本加载为 jQuery 的依赖项:

    add_action('wp_enqueue_scripts', 'my_theme_name_enqueue_scripts'); function my_theme_name_enqueue_scripts() { wp_enqueue_script('my-theme-name-js', get_template_directory_uri() . '/scripts.js', array('jquery')); }

函数调用的第三个参数wp_enqueue_script是您所依赖的其他脚本的数组。

有关 WordPress 为您提供的脚本句柄/名称的完整列表,请参见此处

于 2020-08-26T22:13:39.987 回答