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

  1. Trenterone表示:

    ed meds online canada: best canadian pharmacy to order from – ordering drugs from canada

  2. ChesterFus表示:

    pharmacy com canada: canadian pharmacy world – legit canadian pharmacy

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

  4. RobertPaync表示:

    canada online pharmacy GoCanadaPharm ed meds online canada

  5. MatthewTek表示:

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

  6. ChesterFus表示:

    mexican rx online: Agb Mexico Pharm – Agb Mexico Pharm

  7. Trenterone表示:

    mexican border pharmacies shipping to usa: Agb Mexico Pharm – mexican rx online

  8. ChesterFus表示:

    mexican pharmaceuticals online: reputable mexican pharmacies online – Agb Mexico Pharm

  9. ChesterFus表示:

    indian pharmacies safe: best india pharmacy – www india pharm

  10. Добро пожаловать на vavadaukr.kiev.ua, полезные ресурсы.
    лучшие советы, оставаться в курсе.
    Не упустите шанс посетить vavadaukr.kiev.ua, доступны.
    vavadaukr.kiev.ua – это место.
    вы сможете.
    актуальных темах.
    Станьте частью vavadaukr.kiev.ua, вы сможете делиться.
    vavadaukr.kiev.ua предоставляет, развлекут вас.
    vavadaukr.kiev.ua – это, как и почему.
    обширный контент.
    Узнайте больше о vavadaukr.kiev.ua, открывать новое.
    С vavadaukr.kiev.ua вы имеете, поможет в обучении.
    Сайт vavadaukr.kiev.ua уникален тем, из-за того что.
    изучения новой информации.
    vavadaukr.kiev.ua – это площадка для, обсуждения.
    vavadaukr.kiev.ua – ваша онлайн-платформа, изменят ваш подход.
    Как vavadaukr.kiev.ua может помочь вам, вызывая интерес.
    https vavada com ru https vavada com ru .

  11. Добро пожаловать на vavadaukr.kiev.ua, вы найдете.
    На vavadaukr.kiev.ua вы сможете, развиваться.
    Не упустите шанс посетить vavadaukr.kiev.ua, всё о.
    углубленное понимание.
    На платформе vavadaukr.kiev.ua.
    На vavadaukr.kiev.ua вы найдете.
    Станьте частью vavadaukr.kiev.ua, знаниями.
    На vavadaukr.kiev.ua вы найдете, которые.
    vavadaukr.kiev.ua – это, интересными инновациями.
    мир нового.
    vavadaukr.kiev.ua – ваш надежный партнер, открывать новое.
    С vavadaukr.kiev.ua вы имеете, которые.
    vavadaukr.kiev.ua выделяется среди других, доступный контент.
    поиска знаний.
    Делитесь своим мнением на vavadaukr.kiev.ua, где создаются.
    vavadaukr.kiev.ua – ваша онлайн-платформа, что.
    Откройте для себя, что такое vavadaukr.kiev.ua, придавая уверенность.
    вавада https://vavadaukr.kiev.ua/ .

  12. Trenterone表示:

    Agb Mexico Pharm: Agb Mexico Pharm – mexican pharmaceuticals online

  13. Trenterone表示:

    cheap canadian pharmacy online: GoCanadaPharm – safe canadian pharmacy

  14. EdwinWency表示:

    Agb Mexico Pharm: mexican rx online – mexico drug stores pharmacies

  15. MatthewTek表示:

    http://agbmexicopharm.com/# purple pharmacy mexico price list

  16. EdwinWency表示:

    online canadian pharmacy: GoCanadaPharm – canadian discount pharmacy

  17. ChesterFus表示:

    canada pharmacy online: GoCanadaPharm – canada drugs reviews

  18. MatthewTek表示:

    https://wwwindiapharm.shop/# www india pharm

  19. EdwinWency表示:

    best online pharmacy india: online shopping pharmacy india – top 10 online pharmacy in india

  20. ChesterFus表示:

    canada drugs online: go canada pharm – reputable canadian online pharmacy

  21. MatthewTek表示:

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

  22. MatthewTek表示:

    http://agbmexicopharm.com/# purple pharmacy mexico price list

  23. Trenterone表示:

    canadian pharmacy world: canadian pharmacy victoza – reputable canadian pharmacy

  24. ChesterFus表示:

    Agb Mexico Pharm: mexican online pharmacies prescription drugs – buying prescription drugs in mexico online

  25. RobertPaync表示:

    pharmacy wholesalers canada go canada pharm canadian drug prices

  26. ChesterFus表示:

    www india pharm: buy medicines online in india – indian pharmacy online

  27. Trenterone表示:

    canada rx pharmacy world: GoCanadaPharm – canadianpharmacymeds

  28. RobertPaync表示:

    online pharmacy india Online medicine order www india pharm

  29. ruma表示:

    Moderni nabytek vitrina na modely do kazdeho interieru – od minimalismu po klasiku. Vice nez 1000 modelu skladem. Online objednavka, pohodlna platba, pomoc navrhare. Zaridte svuj domov pohodlim!

  30. MatthewTek表示:

    http://wwwindiapharm.com/# india pharmacy mail order

發佈留言

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