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

17,004 Responses

  1. LarryHom表示:

    https://mexicanpharmacy.store/# mexican pharmaceuticals online

  2. Jamesknowl表示:

    http://mexicanpharmacy.store/# purple pharmacy mexico price list

  3. Jamestus表示:

    best online pharmacies in mexico mexican drugstore online best online pharmacies in mexico

  4. LarryHom表示:

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

  5. вывод из запоя цена ростов [url=http://www.vyvod-iz-zapoya-rostov234.ru]вывод из запоя цена ростов[/url] .

  6. ClaytonGauct表示:

    mail order pharmacy india: buy medicines online in india – indian pharmacy paypal

  7. вывод из запоя цены ростов на дону вывод из запоя цены ростов на дону .

  8. Diplomi_ghpi表示:

    купить высшее образование с занесением в реестр купить высшее образование с занесением в реестр .

  9. вывод из запоя на дому ростов круглосуточно [url=https://vyvod-iz-zapoya-rostov232.ru]вывод из запоя на дому ростов круглосуточно[/url] .

  10. вывод из запоя дешево ростов-на-дону вывод из запоя дешево ростов-на-дону .

  11. Jamesknowl表示:

    https://canadianpharmacy.win/# canadian pharmacy no scripts

  12. Jamestus表示:

    canadian valley pharmacy best online canadian pharmacy canadian pharmacy drugs online

  13. вывод из запоя дешево ростов на дону вывод из запоя дешево ростов на дону .

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

  15. Diplomi_yspi表示:

    купить диплом высшее в омске 4russkiy365-diplomy.ru .

  16. Brianchoky表示:

    https://indianpharmacy.win/# india pharmacy mail order

  17. Brianchoky表示:

    https://indianpharmacy.win/# online shopping pharmacy india

  18. вывод. из. запоя. на. дому. ростов. http://vyvod-iz-zapoya-rostov234.ru/ .

  19. LarryHom表示:

    http://mexicanpharmacy.store/# mexican drugstore online

  20. Jamestus表示:

    best online pharmacies in mexico buying prescription drugs in mexico purple pharmacy mexico price list

  21. ClaytonGauct表示:

    canadian pharmacy in canada: best online canadian pharmacy – reliable canadian pharmacy

  22. вывод из запоя в ростове на дону вывод из запоя в ростове на дону .

  23. In early-May 2019, Apple CEO Tim Cook said to CNBC that Apple acquires an organization each two to three weeks on common, having acquired 20 to 25 firms in the past six months alone.

發佈留言

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