2017-02-20 24 views
0

我在寫的JavaScript代碼:的Javascript股利加載圖像不正常

  1. 當一個鏈接,用戶點擊,加載圖像應顯示到明年頁面加載。

  2. 用戶只需點擊鏈接即可正常工作,加載圖片直到下一頁加載纔可見。但問題是當用戶用CTRL鍵點擊鏈接時。目標頁面在瀏覽器的新選項卡中打開,並從所鏈接的頁面點擊,加載div連續顯示。

function ShowLoading(e) { 
 
    var div = document.createElement('div'); 
 
    var img = document.createElement('img'); 
 
    img.src = 'pageloaderB.gif'; 
 
    img.style.cssText = 'border:0px'; 
 
    div.innerHTML = "<b style=color:black;font-size:40px;font-family:calibri>Processing Request Please Wait</b><br><br><br>"; 
 
    div.style.cssText = 'padding-top:200px;position: fixed; top: 0px; left: 0px; z-index: 5000; width: 100%; height:100%; text-align: center; background:white;opacity: .8;'; 
 
    div.appendChild(img); 
 
    document.body.appendChild(div); 
 
    return true; 
 
}
<a href="dashboard.php" class="ico1" onclick="ShowLoading()">Dashboard</a>

的Javascript:

請幫我關閉這個。無論是簡單的點擊還是CTRL +點擊,當頁面完全加載時,加載div必須是不可見的。

+0

http://stackoverflow.com/questions/3877027/jquery-callback-on-image-load-even-當圖像被緩存?answertab =活動#tab-top –

+0

不清楚Alvari Touzon,請幫助。如果在新tabe中打開鏈接,我們如何才能告訴返回到previous tabe目標頁面已加載。 –

回答

0

代替使用鏈接使用事件beforeunloadonclick。所以這將避免不必要的電話ShowLoading

在普通的JavaScript的情況下:

window.onbeforeunload=ShowLoading; 

使用jQuery:

$(window).on('beforeunload',ShowLoading); 
+0

Downvoters,請留下您的評論,這將幫助我改進我的帖子。 – Arvind

0

您可以檢查事件對象的Ctrl,Shift和Meta鍵屬性。如果其中任何一個是真的,則關鍵控制,移位或元(Apple的命令)鍵被保持。你會發現一個有用的JavaScript代碼片段,它有助於解決這裏的問題:How to detect if user it trying to open a link in a new tab?

+1

我已經完成了'if(window.event.ctrlKey){ // ctrl被點擊期間按住了 } 其他{' –

1

使用localStorage來引入一個「全局」變量,即跨越多個選項卡的變量。

當點擊一個鏈接,則設置localStorage['loading']爲true,並在每個頁面的window.onload事件將其重新設置爲false。

當您顯示圖像時,您將啓動一個不斷檢查變量的間隔。當新選項卡中的頁面已加載並且變量設置爲false時,間隔函數將隱藏圖像並停止其間隔。

(這個答案不是簡單地檢查Ctrl鍵是按下更令人費解,但它甚至會用鼠標點擊或在新標籤中打開鏈接的其他方式使用。)