无法在Google Chrome上使用JQueryUI Dialog打开“打印对话框”

时间:2011-03-06 18:20:36

标签: javascript jquery jquery-ui jquery-ui-dialog

我实际上正在使用JQueryUI Dialog plugin向我网站的用户显示一些信息。可以打印此对话框的内容,因此当我单击按钮时,我需要打开一个打印对话框(来自浏览器)。

我正在创建这样的对话框(这只是一个例子;我修改了内容和大小):

var box = $('<div id="print-dialog" title="Print map">blablabla....</div>');
box.dialog({
   width: 100,
   height: 100,
   modal: true,
   draggable: false,
   resizable: false,
   close: function(event,ui){
      $('#print-dialog').remove();
   },
   buttons: {
      "Print this!": function(){
          window.print();
       }
   }
});

但是当我点击“打印”按钮时,没有任何反应。我在Firefox和IE上尝试过相同的例子并且工作正常。

您可以尝试在JSBin上执行我的代码:http://jsbin.com/osoro3

我需要什么?难道我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:3)

这在最新的Chrome Beta版本10.0.648.127中运行良好。我认为你只是在Chrome Canary Build中遇到了怪异。请记住,Canary Build是released without any testing to ensure that it actually works,因此是“非常不稳定的浏览器,通常会完全破坏。”

在这种情况下,当粘贴到JSFiddle并在Chrome 11.0.691.0中查看时,相同的代码似乎一次。第一次单击该按钮时,将显示打印对话框,但如果取消该按钮并再次单击该按钮,则不会执行任何操作。 (这似乎也是一个Chrome错误 - 同样的事情发生在this very vanilla test。)

结论:鉴于错误的可能性很高(比如这个),我不会针对Chrome Canary Build开发任何东西。我建议您坚持使用Beta channel进行实际开发工作,如果您想尝试尚未进入Beta频道的新功能,请仅使用Canary Build。