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

  1. вывод из запоя круглосуточно http://www.vyvod-iz-zapoya-krasnodar112.ru/ .

  2. ClaytonGauct表示:

    buy medicines online in india: indian pharmacy – top 10 pharmacies in india

  3. Clinton, Helen; Abumere, Princess (14 September 2021).

  4. вывод из запоя круглосуточно http://www.vyvod-iz-zapoya-krasnodar113.ru/ .

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

  6. Jamesknowl表示:

    https://mexicanpharmacy.store/# mexican mail order pharmacies

  7. Sussman said that Fuser was a continued evolution of their music video games in how they’ve checked out player company.

  8. LarryHom表示:

    https://canadianpharmacy.win/# canadian pharmacy mall

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

  10. Jamestus表示:

    mexican online pharmacies prescription drugs mexican mail order pharmacies mexican border pharmacies shipping to usa

  11. Brianchoky表示:

    https://canadianpharmacy.win/# canadian drugs

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

  13. 282. A younger sister appears at and admires her older sibling dressed in a formal evening gown of white with massive blue velvet bows.

  14. Brianchoky表示:

    https://indianpharmacy.win/# pharmacy website india

  15. A number of other banks have since followed this system.

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

  17. ClaytonGauct表示:

    medicine in mexico pharmacies: buying from online mexican pharmacy – best online pharmacies in mexico

  18. Jamestus表示:

    buying prescription drugs in mexico mexican rx online buying prescription drugs in mexico online

  19. Whether or not it’s a trend show in Mumbai or a Musical program in Kolkata, it’s the responsibility of the occasion planner to take care of something and all the pieces concerning the event.

  20. Jamesknowl表示:

    http://indianpharmacy.win/# top 10 pharmacies in india

  21. Jamesknowl表示:

    http://mexicanpharmacy.store/# mexico drug stores pharmacies

  22. A panzer-led assault on Paris broke the scarce reserves that Weygand had put between the Germans and the capital, and on 10 June the French authorities fled to Bordeaux, declaring Paris an open city.

  23. Wednesday within the Santa Barbara cemetery in Santa Barbara, Calif.

  24. LarryHom表示:

    http://canadianpharmacy.win/# onlinepharmaciescanada com

  25. LarryHom表示:

    http://mexicanpharmacy.store/# best online pharmacies in mexico

發佈留言

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