Javascript / jQuery在Chrome中完美运行但在Firefox

时间:2017-03-28 11:18:35

标签: javascript jquery html css

我最近一直在使用一些代码,允许人们在使用我们的网站以英镑货币支付时使用Paypal Express Checkout付款,但我不希望他们使用欧元,美元或其他任何其他选项货币。

在我的自定义CSS中,我使用了

.paypalbutton {display: none !important;}

然后在我的Javascript / Jquery中我使用了

window.setInterval(function(){
if (jQuery(".currency-selector:contains('GBP')").length) {
    jQuery(".paypalbutton").attr('style', 'display: inline-block !important');
 } 1000});

我这样做的原因是因为Paypal按钮是用PHP动态加载的。由于某种原因.on和.live似乎不起作用。

现在这在谷歌浏览器中完美运行,这是我一直在测试的。但由于某种原因,这不适用于Firefox(尚未测试其他浏览器)。所以我的问题是,为什么它不适用于Firefox?

感谢您的帮助。

更多信息:

在输入控制台时,firefox中的代码似乎没有任何问题,只是在'GBP'上显示时应该显示的paypal按钮没有在firefox中显示但在chrome中显示。

Chrome有:

.paypalbutton {display: inline-block !important}
<strike>.paypalbutton {display: none !important}</strike>

Firefox有:

.paypalbutton {display: none !important}
<strike>.paypalbutton {display: inline-block !important}</strike>

1 个答案:

答案 0 :(得分:1)

定义setInterval功能

时出错

尝试如下:

window.setInterval(function(){
  if(jQuery(".currency-selector:contains('GBP')").length){
    jQuery(".paypalbutton").attr('style', 'display: inline-block !important');
    /*jQuery(".paypalbutton").css({
       'display' : 'inline-block !important'
      });*/
 }
},1000);
  

注意: Console来自两个浏览器的输出。检查是否有Script Error。通过浏览器检查Javascript disabled/not supported

这是setInterval函数语法

window.setInterval(myCallbackFunction, DurationInMilliseconds);

示例:

var intervalID = window.setInterval(myCallback, 500);
function myCallback() {
  // Your code here
}
  

有关setInterval()功能的更多详细信息。并jQuery Browser Support