我实际上正在使用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
我需要什么?难道我做错了什么?谢谢!
答案 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。