搜尋 Mozilla 技術支援網站

防止技術支援詐騙。我們絕對不會要求您撥打電話或發送簡訊,或是提供個人資訊。請用「回報濫用」功能回報可疑的行為。

了解更多

Javascript Redirection Not Working

  • 2 回覆
  • 1 有這個問題
  • 13 次檢視
  • 最近回覆由 Fred

more options

Hello,

I have a web page that prints a document, and then redirects back to the main page. This website has always worked in every browser, and now in Firefox 84.0.2 it no longer redirects.

What changed in Firefox, and how do I get it redirecting again?

Here is a snippet of the code in question:

<script type='text/javascript'>

    var interval = setInterval(function() {
         if(document.readyState === 'complete') {
              clearInterval(interval);
              window.print();
         }
    }, 100);
    
    window.onbeforeprint = function() {
         window.location = 'https://www.mozilla.org';
    }

</script>

Hello, I have a web page that prints a document, and then redirects back to the main page. This website has always worked in every browser, and now in Firefox 84.0.2 it no longer redirects. What changed in Firefox, and how do I get it redirecting again? Here is a snippet of the code in question: <script type='text/javascript'> var interval = setInterval(function() { if(document.readyState === 'complete') { clearInterval(interval); window.print(); } }, 100); window.onbeforeprint = function() { window.location = 'https://www.mozilla.org'; } </script>

所有回覆 (2)

more options

FWIW this is the type of issue to report at https://bugzilla.mozilla.org/ rather than this end user support forum.

That said, it seems weird that you would navigate away from the page to be printed in `onbeforeprint`. Why not `onafterprint`?

more options

Jonathan Watt said

FWIW this is the type of issue to report at https://bugzilla.mozilla.org/ rather than this end user support forum. That said, it seems weird that you would navigate away from the page to be printed in `onbeforeprint`. Why not `onafterprint`?

Hi Jonathan,

Thank you for the reply. I use onbeforeprint in Firefox, because onafterprint does not seem to work.

For the time being, and just in case anyone else is having the issue, I have found that using a seperate setTimeout with an interval of 5 seconds seems to work for my purpose.