Невозможно открыть «Print Dialog» с помощью JQueryUI Dialog в Google Chrome - PullRequest
1 голос
/ 06 марта 2011

Я на самом деле использую 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 Ответ

3 голосов
/ 07 марта 2011

Это прекрасно работает в последней сборке Chrome Beta, 10.0.648.127. Я думаю, вы просто испытываете странности в Chrome Canary Build. Помните, что Canary Build выпущен без какого-либо тестирования, чтобы убедиться, что он действительно работает , и, как таковой, является «крайне нестабильным браузером, который часто ломается полностью».

В этом случае один и тот же код работает один раз при вставке в JSFiddle и просмотре в Chrome 11.0.691.0. При первом нажатии кнопки отображается диалоговое окно печати, но если вы отмените ее и снова нажмете кнопку, ничего не произойдет. (Это также похоже на ошибку Chrome - то же самое происходит в этом очень ванильном тесте .)

Итог: учитывая высокую вероятность ошибок (вроде этой), я бы ничего не разработал против Chrome Canary Build. Я рекомендую использовать бета-канал 1014 * для реальной разработки и использовать Canary Build, только если вы хотите поэкспериментировать с новой функцией, которая еще не попала на бета-канал.

...