У меня есть JS-скрипт, который берет изображение и рисует его на холсте. Код отлично работает во всех браузерах, кроме Chrome. Я включил соответствующие
this.tile = document.createElement('canvas');
var ctx = this.tile.getContext("2d");
this.tile.width = ((size.cm_size) * (((this.image.width) / this.app.dpi.active) * 2.54)).toFixed(2);
this.tile.height = ((size.cm_size) * (((this.image.height) / this.app.dpi.active) * 2.54)).toFixed(2);
if (this.scale > 0) {
// These 2 lines break it in Chrome.
this.tile.width = this.tile.width * this.scale;
this.tile.height = this.tile.height * this.scale;
}
ctx.drawImage(this.image, 0, 0, this.image.width, this.image.height, 0, 0, this.image.width, this.image.height);
Я прокомментировал 2 строки, которые ломают что-то в Chrome. Удаление этих строк заставляет вещи работать.
С этими строками ничего не отображается, пока я не увеличу переменную this.app.dpi.active до 350 (она начинается со 150). Как только это происходит, он отображает то же, что и в Firefox.
Сообщений об ошибках нет, плитка просто пуста.
Вот список значений для this.app.dpi.active, а также итоговая ширина и высота плитки. Плитка не отображается, пока значение DPI не достигнет 350.
150 DPI = 9444 x 9444
200 DPI = 7084 x 7084
250 DPI = 5668 x 5668
300 DPI = 4720 x 4720
350 DPI = 4048 x 4048
Я проверил эти значения в Chrome и Firefox, и они идентичны, но в Firefox все работает. Значение this.scale = 4, и когда ширина и высота не умножаются на this.scale, оно отлично работает в FF и Chrome.
Пожалуйста, дайте мне знать, если вам нужен дополнительный код или у вас есть вопросы.
new Element
? Я не думаю, что вы можете сделать это. Вы должны на самом деле сделатьdocument.createElement
- person Derek 朕會功夫   schedule 25.07.2014