2011-03-06 145 views
1

我实际上是在使用JQueryUI Dialog plugin向我的网站的用户显示一些信息。这个对话框的内容可以打印,所以我需要打开一个打印对话框(从浏览器),当我点击一个按钮。无法在Google Chrome上使用JQueryUI对话框打开“打印对话框”

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

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

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

+0

我刚刚在提供的链接中使用了我的Chrome版本,并弹出了打印对话框。我正在使用Chrome 9.0.597.107 – Avitus

+0

@Avitus我的Chrome版本是11.0.686.3 dev。不要因为我的Chrome版本而工作? –

回答

3

这在最新的Chrome Beta版本10.0.648.127中正常工作。我认为你只是在Chrome Canary Build中感受到奇怪。请记住,金丝雀版本是released without any testing to ensure that it actually works,因此是“非常不稳定的浏览器,通常会完全崩溃”。

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

底线:鉴于错误的可能性很高(像这样),我不会针对Chrome Canary Build开发任何东西。我建议坚持使用Beta channel进行实际开发工作,如果您想试用尚未投入Beta版频道的新功能,则只能使用Canary Build。

+0

谢谢;这个解释是我需要的:) –