踩到Window resize在Preview print的雷

最近在作案的過程中遇到一個狀況,從Art design那邊拿到的頁面,會在Window resize的時候執行某個Function,本來一切都正常,但測試到Chrome和Firefox預覽列印時發現也會Trigger這個Event,會讓在預覽列印過後的頁面發生問題,所以必須要進行修正,以下是這個案例的說明:

先在測試頁加入以下的程式,發現在預覽列印的時候會Trigger window resize event:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Preview Print Test</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(window).resize(function() {
            console.log("Window Resize");
        });
    </script>
</head>
<body>
<h1>Window Resize Test</h1>
</body>
</html>
Preview print trigger window resize event
Preview print trigger window resize event

網路上搜尋了一下解決方案,將Script改寫如下,可以順利解決,但不知道是不是最好的方法,如果大家有更好的也別忘了告訴我唷~

openResizeFn();

// Chorme
var print = false;
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function (mql) {
    if (mql.matches) {
        closeResizeFn();
    } else {
        setTimeout(openResizeFn, 2000);
    }
});

// Firefox
window.onbeforeprint = function () {
    closeResizeFn();
};
window.onafterprint = function () {
    setTimeout(openResizeFn, 2000);
};

// Common Function
function openResizeFn() {
    $(window).on("resize", windowResize);
}

function closeResizeFn() {
    $(window).off("resize", windowResize);
}

function windowResize() {
    console.log("Window Resize");
}

You may also like...

26,122 Responses

  1. Frankevild表示:

    https://ozempic.art/# ozempic

  2. RamonRek表示:

    rybelsus cost: rybelsus price – cheapest rybelsus pills

  3. RamonRek表示:

    ozempic cost: ozempic coupon – ozempic

  4. нарколог на дом вывод из запоя на дому нарколог на дом вывод из запоя на дому .

  5. Jeremypag表示:

    buy rybelsus online buy rybelsus online buy rybelsus online

  6. LeroyAcuff表示:

    Профессиональный сервисный центр сервисный центр ремонт телефонов сервис смартфонов

  7. The post is absolutely great! Lots of great info and inspiration, both of which we all need! Also like to admire the time and effort you put into your blog and detailed information you offer! I will bookmark your website!

  8. В магазине сейфов предлагают купить сейф в москве цена сейф цена

  9. BarryDof表示:

    https://rybelsus.shop/# rybelsus pill

  10. Have you always been concerned about these issues?

  11. LeroyAcuff表示:

    Профессиональный сервисный центр ремонт телефон срочный ремонт смартфонов

  12. Frankevild表示:

    https://rybelsus.shop/# semaglutide cost

  13. Just stumble upon your blog from from time to time. nice article

  14. BarryDof表示:

    https://ozempic.art/# buy ozempic

  15. LeroyAcuff表示:

    Профессиональный сервисный центр ремонт кнопочных телефонов ремонт телефонов москва

  16. В магазине сейфов предлагают заказать сейф сейф цена

  17. нарколог на дом вывод из запоя ростов нарколог на дом вывод из запоя ростов .

  18. вывод. из. запоя. на. дому. ростов. вывод. из. запоя. на. дому. ростов. .

  19. срочный вывод из запоя на дому ростов срочный вывод из запоя на дому ростов .

  20. Jeremypag表示:

    buy semaglutide online semaglutide cost cheapest rybelsus pills

  21. BarryDof表示:

    http://ozempic.art/# ozempic cost

  22. Frankevild表示:

    https://ozempic.art/# ozempic online

  23. Сервисный центр предлагает сервис ремонта видеокарт inno3d ремонт видеокарты inno3d рядом

  24. BarryDof表示:

    http://ozempic.art/# buy cheap ozempic

  25. RamonRek表示:

    semaglutide cost: semaglutide online – buy semaglutide online

  26. RamonRek表示:

    semaglutide tablets: rybelsus cost – cheapest rybelsus pills

  27. Профессиональный сервисный центр по ремонту электросамокатов в Москве.
    Мы предлагаем: ремонт электрических самокатов в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

發佈回覆給「RamonRek」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。