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

22,402 Responses

  1. Dwightprugs表示:

    https://pinco.legal/# pinco casino

  2. LarryHiz表示:

    Plinko Deutsch: plinko – PlinkoDeutsch

  3. 1win_wppt表示:

    1 vin официальный сайт http://1win39.com.kg/ .

  4. It is larger than the great Wall of China, however are you able to guess the length of Australia’s Great Barrier Reef?

  5. Тут можно преобрести создание медицинских сайтов под ключ заказать сайт для поликлиники

  6. Dwightprugs表示:

    https://plinkocasi.com/# Plinko-game

  7. Boycenog表示:

    http://plinkocasi.com/# Plinko game

  8. Dwightprugs表示:

    https://plinkocasi.com/# Plinko casino game

  9. LarryHiz表示:

    Plinko game: Plinko online – Plinko app

  10. LarryHiz表示:

    plinko nederland: plinko betrouwbaar – plinko casino

  11. Собственное производство металлоконструкций. Если вас интересует навес для двух машин мы предлогаем изготовление под ключ навес заказать

  12. MichaelBrefe表示:

    pinco slot: pinco slot – pinco

  13. MichaelBrefe表示:

    plinko casino: plinko casino – plinko germany

  14. LarryHiz表示:

    plinko casino: plinko casino – plinko casino nederland

  15. MichaelBrefe表示:

    pinco: pinco.legal – pinco.legal

  16. Jesseremok表示:

    Индивидуалки донецк идеальный выбор для тех, кто ценит не только красоту, но и интеллект??

    ?? Мы предлагаем умных, элегантных и образованных девушек, готовых сделать ваше время приятным и запоминающимся

    ?? Наша миссия – создать для вас идеальные условия для отдыха и удовольствия

    Напишите нашему менеджеру сегодня и убедитесь сами!

    Все подробности в нашей статье: https://telegra.ph/SHlyuha-Doneck-02-27-2

  17. Eugenegewot表示:

    мтс домашний интернет подключение https://domashniy-internet-omsk.ru

  18. LarryHiz表示:

    plinko casino: plinko ball – plinko casino

  19. 1win_jkkl表示:

    1 win официальный 1 win официальный .

  20. Dwightprugs表示:

    https://plinkocasinonl.com/# plinko nederland

  21. Haroldbop表示:

    click here to find out more https://web-sollet.com/

  22. Boycenog表示:

    https://plinkodeutsch.com/# plinko germany

  23. Boycenog表示:

    https://plinkocasi.com/# Plinko game for real money

  24. Dwightprugs表示:

    http://plinkocasi.com/# Plinko-game

發佈留言

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