2013-05-04 3 views
3

Я пытаюсь использовать drawImage в Canvas Context в сценарии инъецируемого контента из моего расширения Chrome.Использование холста drawImage в хром-расширении содержимого скрипта

testCanvas = document.createElement('canvas'); 
    testContext = testCanvas.getContext('2d'); 
    var image = new Image(); 
    testContext.drawImage(image, 0, 0); 

В Chrome 26 он работает нормально, но в Dev канала (Chrome 28) это швы сломана, как я получил это сообщение:

Uncaught TypeError: Type error 

Когда я двигаю же сценарий непосредственно на фоне страницы, это работает без каких-либо проблем.

Я думаю, что это может быть связано с некоторыми изменениями, связанными с безопасностью, но я не смог найти никакой соответствующей информации.

ответ

7

Это ошибка, вы должны сообщить об этом. Еще одно тестирование показывает, что в Chrome 28.0.1498.0 конструктор Image не создает действительный экземпляр HTMLImageElement (как показано на скриншоте ниже).
Этот код запускается в контексте сценария содержимого. Тот же код отлично работает на обычных страницах и в процессе расширения (справочная страница).

Чтобы устранить проблему, используйте document.createElement('img') вместо new Image().

.appendChild(new Image()) Error: NotFoundError: DOM Exception 8

И не забудьте сообщить об ошибке в https://code.google.com/p/chromium/issues/list.

+1

Спасибо! Об ошибке сообщается на странице https://code.google.com/p/chromium/issues/detail?id=238071 – Kepi

+0

@Kepi. Я сообщил о новой ошибке на странице https://code.google.com/p/chromium/issues./деталь? ID = 245296. Оказывается, ошибка не специфична для 'new Image()', а также 'Audio' и' Option'. –

Смежные вопросы