我正在處理的頁面執行了一個JavaScript函數來打印部分頁面。 由於某些原因,在Safari中打印會導致窗口以某種方式更新。我以某種方式說,因爲它不會像重新加載頁面那樣真正刷新,而是它從頭開始「渲染」頁面,即滾動到頂部,閃存動畫從0開始,依此類推。爲什麼這個基於javascript的打印會導致Safari刷新頁面?
效果通過這個小提琴轉載:http://jsfiddle.net/fYmnB/
點擊打印按鈕,完成或取消在Safari打印導致屏幕「去白」一秒鐘,這在我真正的網站表現的東西「喜歡」重新加載。比方說,在運行打印按鈕的時候,Firefox可以打開和關閉打印對話框,而不會以任何方式影響小提琴頁面。
是否有我的調用瀏覽器打印方法導致這種情況的方式,或者如何解釋 - 並最好避免?
P.S .:在我的真實網站上,Chrome也一樣。儘管如此,Chrome瀏覽器似乎並沒有顯示出與Safari相同的行爲。
編輯:我也試着在a
錨點的標籤上打印不同的標籤,例如span
或button
,但這並沒有幫助解決問題。
編輯:我遇到了這個問題與Safari 5.1.2在Mac OS 10.6.8。在jsfiddle示例中,行爲顯示爲單擊打印按鈕並關閉(打印或中止)打印對話框後覆蓋整個瀏覽器的白色「閃爍」。
編輯:剛開始這個問題的賞金,因爲我仍然在尋找這個瀏覽器行爲的解釋。我非常願意提供有關這個問題的更多細節。根據我的經驗,不建議將鏈接發佈到在線頁面,但是我覺得這個問題很難再現。我認爲「閃爍&重新呈現」我與張貼的jsfiddle的經驗有希望是同樣的問題的結果。
編輯:正如評論中所述,打開一個包含應用程序當前狀態的新窗口,然後打印並關閉該窗口,可能是一個解決辦法,但我認爲這不足以解決問題的答案。手。
請嘗試'print'。我猜WebKit會爲你的錨添加一個空href來解釋這種行爲。 – danwit 2012-02-13 14:07:00
嗨丹維特,謝謝你的建議。不幸的是,jsfiddle中的白色「重新加載」閃爍仍然存在,就像我實際項目中的「刷新」效果一樣。 – kontur 2012-02-14 07:23:14
我用更多的系統細節更新了這個問題。 – kontur 2012-02-14 10:42:11