2015-07-19 70 views
-2

在Internet Explorer上,大多数贝宝按钮加载时间大约需要2-5秒。我想知道是否有一种方法可以在按钮没有出现时放置预加载器。贝宝按钮预加载器

我已经知道JS和如何添加预加载器,对我来说困难的是如何捕获在DOM中显示的按钮事件?

编辑:按钮通过PHP回显。下面的代码:

$str = '<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">'.PHP_EOL; 
$str .='<input type="hidden" name="custom" value="'.$_SESSION["user_id"].'">'.PHP_EOL; 
$str .='<input type="hidden" name="notify_url" value="myCensoredUrl">'.PHP_EOL; 
$str .='<input type="hidden" name="cmd" value="_s-xclick">'.PHP_EOL; 
$str .='<input type="hidden" name="hosted_button_id" value="myPayPalCensoredButtonID">'.PHP_EOL; 
$str .='<input type="image" src="https://www.paypalobjects.com/he_IL/IL/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - הדרך הקלה והבטוחה לשלם באינטרנט!">'.PHP_EOL; 
$str .='<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">'.PHP_EOL; 
$str .='</form>'.PHP_EOL; 
return $str; 

EDIT 2:ALT标签并不能改变什么,如果你的上网速度也慢PayPal按钮不会显示,直到通讯与他们的服务器来完成。

+0

当您完成创建按钮时,由Paypal提供的HTML。 – odedta

+0

通过PHP回显。 – odedta

+2

你的问题太广泛了,不太可能产生任何回应。请在小提琴中发布最小可行代码,以便复制您的问题,以便我们提供帮助。 – lshettyl

回答

1

真正的ALT标签为这样的事情是专门设计,但如果你真的想捕捉图像加载事件中,你可以做这样的事情:

function preload() { 
 
    var image = new Image(); 
 
    image.src = "https://www.paypalobjects.com/he_IL/IL/i/btn/btn_paynowCC_LG.gif"; 
 

 
    image.onload = function() { 
 
     var btn = document.getElementById("pay-button"); 
 
     btn.setAttribute('src', image.src); 
 
     btn.setAttribute('type', 'image'); 
 
    }; 
 
} 
 

 
document.addEventListener("DOMContentLoaded", preload);
<form> 
 
    <input id="pay-button" type="submit" name="submit" value="Click here to pay now"/> 
 
</form>

它将显示一个常规按钮并在加载时将图像替换为图像

+0

我真的不明白为什么我的问题被拒绝了,这是一个有效的问题。克里斯,我已经尝试使用ALT标签,它只会出现,如果图像链接断开,这是不正确的,连接只需要时间。 无论如何,我感谢您的帮助,谢谢! – odedta

+0

您的解决方案运行良好,谢谢。 – odedta