Исключить Javascript из асинхронного на основе ширины устройства - PullRequest
0 голосов
/ 19 апреля 2019

Я асинхронизирую все файлы .js, кроме одного: lazyload.js. Я хотел бы добавить условие, чтобы файл исключался только на ширину мобильного устройства. Чтобы при ширине мобильного устройства все файлы .js были асинхронными.

Это мой рабочий код

if (!is_admin()) {
    add_filter( 'script_loader_tag', function ( $tag, $handle ) {    
        if ( strpos( $tag, "lazyload.js" ) && is_page([1111]) ) {
            return $tag;
        }
        return str_replace( ' src', ' async src', $tag );
    }, 10, 2 );
}

Чтобы добавить условие, я попытался использовать window.matchMedia на основе информации, найденной в этой статье 1008 *. И я получил этот код, который мой functions.php даже не хочет сохранять " из-за ошибки ".

const mq = window.matchMedia( "(max-width: 700px)" );

    if (!is_admin()) {
        add_filter( 'script_loader_tag', function ( $tag, $handle ) {    
            if ( strpos( $tag, "lazyload.js" ) && is_page([1111]) && mq.matches ) {

                return $tag;
            }
            return str_replace( ' src', ' async src', $tag );
        }, 10, 2 );
    }

Я хотел бы знать, где находится ошибка в коде, который я добавил. И если исправлено, может ли window.matchMedia решить мои условия?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...