1

几天来,我一直在寻找解决此问题的方法,并且在此过程中长出了几根白发。我在 php 中回显一个 JQuery 弹出脚本:

  echo '<link rel="stylesheet" 
  href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>            
  <script src="functions.js"></script>
  <script type="text/javascript"> $(document).ready(function() { JQueryAlert("INSERT MESSAGE HERE!", 120); }); </script>';

问题是,有时它会触发,有时则不会。当它不触发时,它会在 Chromes JS 控制台中输出以下错误消息: Uncaught TypeError: Object [object Object] has no method 'dialog'

从我从类似问题中可以看出(Uncaught TypeError: Object #<Object> has no method 'dialog'),问题是javascript库的重复调用,但是,我通过将我的javascript库削减为最低限度(任何更少,它将无法运行)。知道是什么原因造成的吗?我将永远感谢任何可以提供解决方案的人!

4

1 回答 1

-1

这不是修复,但由于我看不到您的其余代码,因此这是一个潜在的解决方法,您基本上检查对话框功能是否存在,如果存在,我们创建警报,如果不存在,我们等待 100毫秒,然后再试一次:

$(document).ready(function() { 
     function jqalert(msg) {
       if (typeof($.fn.dialog) != 'undefined') 
         JQueryAlert(msg, 120); 
       else 
         setTimeout(function() { jqalert(msg); }, 100);
     }
     jqalert("INSERT MESSAGE HERE!");
});
于 2013-05-19T00:20:31.383 回答