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

9,244 Responses

  1. ThomaserowN表示:

    купить диплом в рязани http://www.6landik-diploms.com/

  2. ThomaserowN表示:

    купить диплом высшее https://www.6landik-diploms.com/

  3. One thing is the fact that one of the most prevalent incentives for using your credit card is a cash-back and also rebate offer. Generally, you will get 1-5 back for various acquisitions. Depending on the cards, you may get 1 back again on most buying, and 5 back on buying made on convenience stores, gas stations, grocery stores as well as ‘member merchants’.

  4. ThomaserowN表示:

    купить диплом института https://www.6landik-diploms.com

  5. Howdy! Do you know if they make any plugins to help with Search Engine Optimization? I’m trying to get my site to rank for some targeted keywords but I’m not seeing very good results.
    If you know of any please share. Cheers! I saw similar art here: Choose your escape room

  6. MartinmeR表示:

    квартиры в новостройках екатеринбурга квартира в новостройке от застройщика

  7. MartinmeR表示:

    квартиры от застройщика жк https://kupit-kvartiruekb.ru

  8. JamesJew表示:

    Все самое интересное из мира игр https://unionbattle.ru обзоры, статьи и ответы на вопросы

  9. GeraldCeare表示:

    говядина сыровяленая брезаола сыровяленая брезаола

  10. GeraldCeare表示:

    производство сыровяленых деликатесов прошутто

  11. Bozdzt表示:

    buy generic bisacodyl online – cheap dulcolax 5 mg buy liv52

  12. Michaelcot表示:

    казино регистрации сайт Twin Casino

  13. JosephVed表示:

    купить сайдинг для наружной обшивки сайдинг цена за м2

  14. JosephVed表示:

    сколько стоит сайдинг цена фиброцементный сайдинг купить

  15. Williamdut表示:

    купить свидетельство о разводе http://6landik-diploms.com/

  16. безопасно,
    Индивидуальный подход к каждому пациенту, для вашего уверенного улыбки,
    Современные методы стоматологии, для вашего удобства,
    Бесплатная консультация и диагностика, для вашего здоровья и благополучия,
    Комплексное восстановление утраченных зубов, для вашего долгосрочного удовлетворения,
    Индивидуальный план лечения и профилактики, для вашего комфорта и удовлетворения,
    Индивидуальный план лечения для каждого пациента, для вашего здоровья и благополучия
    безболісне лікування зубів безболісне лікування зубів .

  17. Williamdut表示:

    купить диплом в димитровграде http://www.6landik-diploms.com/

  18. Williamdut表示:

    купить диплом о среднем https://6landik-diploms.com/

  19. Jamesbok表示:

    купить диплом энергетика
    ссылка на страницу

  20. JamesTeact表示:

    купить диплом в нижнекамске
    по ссылке

  21. Jamesbok表示:

    купить свидетельство о рождении ссср
    по ссылке

  22. JamesTeact表示:

    купить диплом ветеринара
    сайт

  23. Jamesbok表示:

    купить диплом в тольятти
    посетить сайт

  24. JamesTeact表示:

    купить свидетельство о рождении
    посмотреть сайт

發佈留言

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