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

  1. RobertPaync表示:

    online shopping pharmacy india www india pharm Online medicine order

  2. Trenterone表示:

    indian pharmacy online: www india pharm – best india pharmacy

  3. ChesterFus表示:

    cheapest online pharmacy india: www india pharm – india pharmacy mail order

  4. EdwinWency表示:

    buy prescription drugs from india: Online medicine order – buy prescription drugs from india

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

  6. MatthewTek表示:

    https://gocanadapharm.com/# canadian pharmacy 24h com safe

  7. EdwinWency表示:

    www india pharm: indian pharmacy – online shopping pharmacy india

  8. Trenterone表示:

    drugs from canada: go canada pharm – canadian mail order pharmacy

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

  10. Charlie Jones表示:

    Equity release solutions may provide the financial support you’ve been looking for. Learn how to tap into the equity tied up in your home without having to move.

  11. Emily Davies表示:

    Thinking about releasing equity from your home? Review top lenders and understand your rights and obligations before making a decision.

  12. RobertPaync表示:

    canadianpharmacy com GoCanadaPharm canadian pharmacy world

  13. ChesterFus表示:

    safe online pharmacies in canada: go canada pharm – cheap canadian pharmacy online

  14. Trenterone表示:

    pharmacies in mexico that ship to usa: Agb Mexico Pharm – mexican rx online

  15. Trenterone表示:

    canadian family pharmacy: canadian drugs online – canadian world pharmacy

  16. MatthewTek表示:

    http://gocanadapharm.com/# canadian pharmacy prices

  17. Charlie Smith表示:

    For those considering equity release, HSBC offers a reliable option that follows FCA regulations. Homeowners can benefit from competitive interest rates and clear guidance. Equity release with HSBC can help you bridge financial gaps without the need for monthly repayments, as the loan is settled when the home is sold.

  18. ChesterFus表示:

    mexico pharmacies prescription drugs: Agb Mexico Pharm – Agb Mexico Pharm

  19. ChesterFus表示:

    mexican drugstore online: mexico pharmacies prescription drugs – mexican online pharmacies prescription drugs

  20. RobertPaync表示:

    best canadian pharmacy to buy from canadian pharmacies comparison best canadian pharmacy

  21. Kasyno Online表示:

    Kiedy jesteś w Holandii, ważne jest, aby upewnić się, że grasz w bezpiecznych kasynach. Poniżej przygotowaliśmy ranking najlepszych holenderskich kasyn online dla Polaków. Jesteśmy grupą doświadczonych graczy, programistów, autorów i entuzjastów hazardowej rozrywki. Podobnie jak wielu z was – jesteśmy pasjonatami hazardu i dostarczamy tylko sprawdzone i wiarygodne informacje na stronie. Poniżej dowiesz się, jak wybrać niezawodny zakład w Holandii, zarejestrować się i otrzymać bonusy. Jeśli nadal nie jesteś zdecydowany, które holenderskie kasyno online wybrać dla rozrywki, zapoznaj się z naszą listą.

  22. EdwinWency表示:

    indian pharmacy: www india pharm – Online medicine order

  23. MatthewTek表示:

    http://wwwindiapharm.com/# www india pharm

  24. ChesterFus表示:

    www india pharm: best online pharmacy india – Online medicine order

  25. EdwinWency表示:

    Agb Mexico Pharm: medicine in mexico pharmacies – mexico pharmacies prescription drugs

  26. Simply want to say your article is as amazing. The clarity in your post is just great and i can assume you’re an expert on this subject. Fine with your permission allow me to grab your feed to keep up to date with forthcoming post. Thanks a million and please keep up the gratifying work.

  27. MatthewTek表示:

    http://agbmexicopharm.com/# Agb Mexico Pharm

  28. Vavada PL表示:

    Kasyno VAVADA oferuje najlepsze automaty do gier (sloty), popularne gry stołowe oraz nowoczesne kasyno na żywo. Serwis wyróżnia się rozbudowanymi bonusami i licznymi turniejami z wysokimi pulami nagród. Vavada rozszerzyła również listę dostępnych metod płatności, aby transakcje finansowe były szybkie i wygodne. Proces tworzenia konta w VAVADA jest bardzo prosty. Przycisk rejestracji znajduje się w prawym górnym rogu, obok przycisku logowania i czatu wsparcia. Każdy gracz może mieć tylko jedno konto. Aby się zarejestrować, należy: Podać numer telefonu lub adres e-mail. Ustawić hasło do konta. Wybrać walutę głównego salda. Kliknąć „Zarejestruj się”. Przed zakończeniem rejestracji musisz zaakceptować regulamin kasyna.

  29. MatthewTek表示:

    http://wwwindiapharm.com/# www india pharm

發佈回覆給「Emily Davies」的留言 取消回覆

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