踩到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,052 Responses

  1. ChesterFus表示:

    www india pharm: best online pharmacy india – www india pharm

  2. Trenterone表示:

    mexican pharmaceuticals online: Agb Mexico Pharm – mexico pharmacies prescription drugs

  3. Исследуйте возможности vavadaukr.kiev.ua, где.
    все необходимое, с целью.
    Не упустите шанс посетить vavadaukr.kiev.ua, вы найдете.
    текущих событиях.
    уникальные советы.
    глубокий анализ.
    Развивайтесь вместе с vavadaukr.kiev.ua, предлагает возможность обсуждать.
    Здесь, на vavadaukr.kiev.ua, вы сможете, что.
    vavadaukr.kiev.ua – это, уметь.
    Ваше путешествие начинается на vavadaukr.kiev.ua.
    vavadaukr.kiev.ua – ваш надежный партнер, где вы сможете.
    обширный выбор, поможет в обучении.
    vavadaukr.kiev.ua выделяется среди других, выделяет.
    На vavadaukr.kiev.ua вы найдёте поддержку в.
    Делитесь своим мнением на vavadaukr.kiev.ua, новые взгляды.
    На vavadaukr.kiev.ua мы предлагаем, привнесут новые идеи.
    Что предлагает vavadaukr.kiev.ua, вдохновляя на новые идеи.
    vavadaukr.kiev.ua https://vavadaukr.kiev.ua/ .

  4. Michaeltor表示:

    Kamagra online bestellen: Kamagra kaufen ohne Rezept – Kamagra online bestellen

  5. Derekgroum表示:

    apotek online recept: apotek online recept – apotek online recept

  6. HomerFaw表示:

    http://kamagrapotenzmittel.com/# Kamagra kaufen ohne Rezept

  7. Derekgroum表示:

    Apoteket online: apotek online – Apotek hemleverans idag

  8. Louislen表示:

    http://kamagrapotenzmittel.com/# Kamagra Oral Jelly kaufen

  9. Malcolmseern表示:

    Betrouwbare online apotheek zonder recept Online apotheek Nederland met recept Online apotheek Nederland zonder recept

  10. Michaeltor表示:

    kamagra: Kamagra Gel – Kamagra Oral Jelly kaufen

  11. Louislen表示:

    https://apotheekmax.shop/# Online apotheek Nederland met recept

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

  13. Derekgroum表示:

    Apoteket online: apotek online recept – apotek online

  14. Michaeltor表示:

    Online apotheek Nederland met recept: Apotheek Max – online apotheek

  15. Davidboosy表示:

    Recomendo o jogo a todos Fortune Tiger

  16. Michaeltor表示:

    de online drogist kortingscode: Apotheek Max – Online apotheek Nederland zonder recept

  17. MarkNOblile表示:

    darknet markets onion address best darknet markets

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

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

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

  21. Michaeltor表示:

    Apotek hemleverans idag: Apoteket online – apotek online

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

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