2012-04-26 85 views
1

如果Google Plus One無法在5秒內加載,我想要一個可以阻止加載頁面的功能。在我國,有時HTTPS端口被電信部門封鎖,我們無法訪問apis.google.com。這不僅很慢,我們實際上無法訪問HTTPS端口。如果是這種情況,我想要一些方法來阻止頁面加載,當我們無法訪問https://apis.google.com/js/plusone.js。我怎樣才能做到這一點?如果無法加載外部腳本,如何停止加載頁面?

+3

你能不能讓'plusone.js'自己的服務器上? – Asif 2012-04-26 20:41:10

+1

此外''plusone.js'則會產生Ajax請求,瀏覽器無法處理直接從您自己的磁盤上打開該html文件的情況,但可以在服務器上流暢地工作,請注意這一點。 – Asif 2012-04-26 20:47:10

+0

請[不要將簽名或標語添加到您的帖子](http://stackoverflow.com/faq#signatures)。 – meagar 2012-04-26 20:53:16

回答

1

只是檢查,看看是否Plusone精選腳本加載在5秒內,像這樣:

var i=0, checkPlusone = setInterval(function() { 
    if (typeof gapi!='undefined') { 
     if (gapi.hasOwnProperty('plusone')) { 
      clearInterval(checkPlusone); 
      console.log('Plusone loaded'); 
     } 
    } 
    if (i>5000) { 
     clearInterval(checkPlusone); 
     console.log('Plusone not loaded'); 
     window.location = "http://www.mypage.com/no_plusone.html"; //redirect to error page 
    } 
    i=i+300; 
}, 300); 

FIDDLE

+0

感謝asnwer,但那不是我想要的。爲什麼重定向?如果重定向發生,那麼主頁總是重定向到主頁。 – HiDd3N 2012-04-26 21:20:34

+0

只是複製並粘貼這段代碼,加上一個會工作??或者我必須改變它? – HiDd3N 2012-04-26 21:28:31

+0

在您的問題中,您寫下「如果Google Plus One無法在5秒內無法加載,我需要一個停止加載頁面的功能」,這是嗎?你不能真正阻止加載頁面,但最好的做法是重定向到錯誤頁面,或者做任何你喜歡的事情,這會檢查plusone是否在5秒內加載,如果加載/未加載,你會怎麼做是2美元。 – adeneo 2012-04-26 21:29:35

0

您可以使用ajax加載文件並使用超時。

按Ctrl + F爲jQuery ajax docs頁上的 「超時」,並看到它在使用中this SO question

+0

你能爲我寫代碼嗎我是ajax.i的新手只想在5秒後殺掉頁面我該怎麼做? – HiDd3N 2012-04-26 21:06:45