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

  1. Once more you could have the choice of consulting; you realize that sheep and birds and fish all have brains and a few of them you would possibly eat, too.

  2. RobertPex表示:

    gГјvenilir siteler gГјvenilir canlД± bahis casino siteleri online casino websites

  3. In 1979, Warsh and Mayer and family moved to Henniker, New Hampshire, where they taught at New England College, and the place their son Max was born.

  4. RobertPex表示:

    online casino bet casД±no bahis veren siteler

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

  6. 気団種類表示:

    This has importance in the game world – ultimately, JC Denton discovers that Joe Greene, reporter for the Midnight Sun, is an informant for the enemy.

  7. TravisFlasp表示:

    online casino turkey: saglam siteler – casino

  8. RobertPex表示:

    casino bonus deneme veren siteler online casino websites

  9. Justinlib表示:

    https://casinositeleri2025.pro/# gГјvenilir canlД± bahis casino siteleri

  10. Justinlib表示:

    http://slottr.top/# en cok kazand?ran slot oyunlar?

  11. TravisFlasp表示:

    slot tr online: az parayla cok kazandiran slot oyunlar? – en kazancl? slot oyunlar?

  12. Josephnor表示:

    online casino bet: canlД± +18 – para kazandД±ran sohbet siteleri

  13. EdwardApest表示:

    https://casinositeleri2025.pro/# yeni deneme bonusu veren siteler 2025

  14. RobertPex表示:

    пин ап казино зеркало пин ап вход пин ап

  15. Justinlib表示:

    http://casinositeleri2025.pro/# jackpot play nedir

  16. Josephnor表示:

    en kazancl? slot oyunlar?: az parayla cok kazandiran slot oyunlar? – en cok kazand?ran slot oyunlar?

  17. Josephnor表示:

    пин ап казино зеркало: pinup 2025 – пин ап

  18. TravisFlasp表示:

    en cok kazand?ran slot oyunlar?: slot siteleri – en kazancl? slot oyunlar?

  19. TravisFlasp表示:

    pinup2025.com: пин ап казино официальный сайт – пин ап зеркало

  20. RobertPex表示:

    пин ап казино pinup2025.com пин ап казино

  21. Josephnor表示:

    slot oyunlar?: slot tr online – en cok kazand?ran slot oyunlar?

  22. RobertPex表示:

    pinup2025.com пин ап казино пин ап казино

  23. Justinlib表示:

    http://pinup2025.com/# пин ап вход

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

  25. Justinlib表示:

    https://casinositeleri2025.pro/# en gГјvenilir site

發佈留言

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