2012-04-26 73 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