踩到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...

16,992 Responses

  1. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин indesit адреса, можете посмотреть на сайте: ремонт стиральных машин indesit рядом
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  2. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин lg рядом, можете посмотреть на сайте: ремонт стиральных машин lg адреса
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  3. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин indesit, можете посмотреть на сайте: ремонт стиральных машин indesit
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  4. DanielAbice表示:

    https://prednibest.com/# over the counter prednisone cream

  5. DanielAbice表示:

    https://prednibest.com/# how much is prednisone 10 mg

  6. RobertJar表示:

    cipro ciprofloxacin: CiPharmDelivery – ciprofloxacin mail online

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

  8. вывод из запоя краснодар стационар вывод из запоя краснодар стационар .

  9. KennethPah表示:

    cipro 500mg best prices ci pharm delivery ciprofloxacin order online

  10. DanielAbice表示:

    http://amoxstar.com/# amoxicillin 500 mg where to buy

  11. KennethPah表示:

    cheap clomid tablets clomidonpharm where can i get cheap clomid without a prescription

  12. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин lg, можете посмотреть на сайте: срочный ремонт стиральных машин lg
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  13. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин indesit сервис, можете посмотреть на сайте: ремонт стиральных машин indesit сервис
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  14. SamuelBix表示:

    amoxicillin 500 mg without prescription: AmoxStar – amoxicillin generic

  15. SamuelBix表示:

    prednisone nz: PredniBest – prednisone 10 mg price

  16. RobertJar表示:

    ciprofloxacin generic: CiPharmDelivery – ciprofloxacin generic price

  17. вывод из запоя стационар краснодар [url=https://kyevlyn.ukrbb.net/viewtopic.php?f=2&t=13621]вывод из запоя стационар краснодар[/url] .

  18. I do agree with all of the ideas you have introduced on your post. They are very convincing and can certainly work. Still, the posts are very brief for beginners. Could you please extend them a bit from next time? Thank you for the post.

  19. KennethPah表示:

    cost of amoxicillin prescription AmoxStar 875 mg amoxicillin cost

  20. вывод из запоя на дому краснодар цены вывод из запоя на дому краснодар цены .

  21. вывод из запоя краснодар стационар вывод из запоя краснодар стационар .

發佈留言

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