renatomarinho / laravel-page-speed

Package to optimize your site automatically which results in a 35%+ optimization
MIT License
2.4k stars 275 forks source link

Uncaught SyntaxError: unexpected token: keyword 'if' #149

Open ShapesGraphicStudio opened 3 years ago

ShapesGraphicStudio commented 3 years ago

When using RenatoMarinho\LaravelPageSpeed\Middleware\CollapseWhitespace::class I get a JS related error: Uncaught SyntaxError: unexpected token: keyword 'if'

Looks like this part is causing it:

document.onreadystatechange = function () {
        var state = document.readyState
        if (state == 'interactive') {
            document.getElementById('contents').style.visibility="hidden";
        } else if (state == 'complete') {
            setTimeout(function(){
                $('#loading').fadeOut(1600);
                document.getElementById('contents').style.visibility="visible";
            }, 800);
        }
    }

If I change the code to:

document.onreadystatechange = function () {
        var state = document.readyState;
        if (state == 'interactive') {
            document.getElementById('contents').style.visibility="hidden";
        } else if (state == 'complete') {
            setTimeout(function(){
                $('#loading').fadeOut(1600);
                document.getElementById('contents').style.visibility="visible";
            }, 800);
        }
    }

I get Uncaught SyntaxError: unexpected token: keyword 'var'

Everything is working fine when I comment in Kernel.php: RenatoMarinho\LaravelPageSpeed\Middleware\CollapseWhitespace::class,

Environment: PHP 7.4.12 Laravel 8.17.2

Any idea on how to get this fixed please?

ShapesGraphicStudio commented 3 years ago

I solved this correcting my js to:

document.onreadystatechange = function () {
        if (document.readyState == 'interactive') {
            document.getElementById('contents').style.visibility="hidden";
        } else if (document.readyState == 'complete') {
            setTimeout(function(){
                $('#loading').fadeOut(1600);
                document.getElementById('contents').style.visibility="visible";
            }, 800);
        }
    };
lucasMesquitaBorges commented 3 years ago

Hi @ShapesGraphicStudio Thanks for reporting! I'll check it