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

27,970 Responses

  1. ScottFem表示:

    pop over to this web-site https://jaxx-liberty.com/

  2. CurtisBam表示:

    Best Indian pharmacy: buy medicines online in india – Indian Cert Pharm

  3. CurtisBam表示:

    indian pharmacy: Indian Cert Pharm – Indian pharmacy international shipping

  4. CurtisBam表示:

    Best Indian pharmacy: Indian Cert Pharm – Best online Indian pharmacy

  5. It is important to tip the housekeeper and bell station properly.

  6. Brandonnot表示:

    Mexican Easy Pharm: Mexican Easy Pharm – mexico drug stores pharmacies

  7. JefferySow表示:

    Бесплатное программное обеспечение для видеонаблюдения на ПК обеспечивает комплексное решение для управления IP-камерами, поддерживая все типы с протоколом RTSP. Платформа включает в себя VMS и CMS, позволяя записывать, просматривать и централизованно управлять большим количеством камер. Встроенная AI-видеоаналитика обеспечивает детекцию объектов, распознавание лиц и автомобильных номеров, а также выявляет признаки дыма и огня. Программное обеспечение идеально подходит для домашнего и профессионального использования, предоставляя надежную систему мониторинга. Скачайте бесплатно и получите доступ к мощным инструментам видеоаналитики и управления. программа для просмотра камер видеонаблюдения на компьютер

  8. It provides steer on reporting of derivative contracts, implementation of risk management standards and common rules for central counterparties and trade repositories.

  9. CurtisBam表示:

    canadian pharmacy checker: CanadianMdPharm – best rated canadian pharmacy

  10. Brandonnot表示:

    Mexican Easy Pharm: mexico pharmacies prescription drugs – Mexican Easy Pharm

  11. Brandonnot表示:

    Best online Indian pharmacy: Indian Cert Pharm – Best online Indian pharmacy

  12. CurtisBam表示:

    Best online Indian pharmacy: Indian Cert Pharm – indian pharmacy

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

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