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

  1. Louislen表示:

    https://apotekonlinerecept.shop/# Apotek hemleverans idag

  2. Louislen表示:

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

  3. Michaeltor表示:

    Betrouwbare online apotheek zonder recept: Online apotheek Nederland zonder recept – de online drogist kortingscode

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

  5. slottica pl表示:

    Wybierając Casino Slottica Polska, zyskujesz dostęp do ekskluzywnych promocji, w tym bonusu powitalnego 250 do 1600 zł oraz 300 darmowych spinów na najpopularniejsze gry. Niezależnie od tego, czy grasz na komputerze, tablecie czy smartfonie, nasza platforma zapewnia płynne działanie na każdym urządzeniu. Sprawdź już dziś i dołącz do społeczności ponad 500 000 aktywnych graczy z całego świata!

  6. Malcolmseern表示:

    kamagra kamagra Kamagra Oral Jelly

  7. HomerFaw表示:

    https://apotheekmax.shop/# Apotheek online bestellen

  8. Louislen表示:

    http://apotheekmax.com/# Online apotheek Nederland zonder recept

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

  10. Derekgroum表示:

    Beste online drogist: Beste online drogist – Apotheek Max

  11. Derekgroum表示:

    Kamagra kaufen ohne Rezept: Kamagra kaufen ohne Rezept – Kamagra Original

  12. Pingidiof表示:

    darknet market links https://github.com/aresonioncq0a7/aresonion – dark websites

  13. Michaeltor表示:

    de online drogist kortingscode: online apotheek – ApotheekMax

  14. Rubentax表示:

    Нужны деньги? Выкупим ваши онколекарства!

    Остались неиспользованные онко лекарства после лечения? Не спешите их выбрасывать! Мы предлагаем выгодный и конфиденциальный выкуп онкопрепаратов, а также медикаментов и таблеток, по всей России через интернет.

    Продам ваши рецептурные препараты! Мы осуществляем скупку онко лекарств и других медикаментов.

    Как это работает?

    Выкуп напрямую: Мы покупаем лекарства непосредственно у вас, гарантируя конфиденциальность сделки.
    Онлайн-продажа: Просто оставьте заявку на нашем сайте, и наш специалист свяжется с вами для обсуждения деталей и оценки стоимости. Вы можете продать лекарства и препараты быстро и удобно! Те, кто продают онко лекарства, доверяют нам!
    Выгодные цены: Предлагаем конкурентоспособные цены на выкуп ваших лекарств.
    Если вы ищете надежный и быстрый способ продать онко лекарства онлайн и получить за них деньги, обращайтесь к нам! Мы поможем вам!
    https://telegra.ph/Prodat-neispolzovannye-onko-lekarstva-79969668120-VykupSkupka-medikamentov-tabletok-preparatov-cherez-internet-04-02
    Свяжитесь с нами по номеру +79969668120, чтобы узнать больше!

發佈留言

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