2013-07-09 2 views
3

Я пытаюсь встроить SVG на холст, но получаю сообщение об ошибке event phase 2, когда SVG подается из моего собственного домена. Любопытно, что если один и тот же образ размещен на другом сервере, он работает нормально. Изображение, которое я тестирую, - это номер here. Даже если I wget изображение и поместите его в папку с изображением, я получаю ту же ошибку. Тем не менее, он работает, если я помещаю его в документ с <object data="/images/tiger.svg" type="image/svg+xml"></object>, но не, если я устанавливаю источник в javascript и рисую на холсте.Javascript SVG рисунок на холсте сбой на фазе события 2

Вот код, я использую какие ошибки, когда изображение размещается на моем домене:

var canvas = document.getElementById('my-canvas'), 
    ctx = canvas.getContext('2d'), 
    img = new Image(); 
img.onload = function() { ctx.drawImage(img, 0, 0); }; 
img.onerror = function(err) { console.log(err); }; 
img.src = '/images/tiger.svg'; // replacing this with 'http://phrogz.net/svg/tiger.svg' does work 

Вот данные об ошибках от Firebug

NONE       0 
defaultPrevented   false 
multipleActionsPrevented false 
stopImmediatePropagation stopImmediatePropagation() 
bubbles      false 
cancelable     false 
eventPhase     2 
isTrusted     true 
timeStamp     1373387631408000 
type      "error" 
+0

Вы можете загрузить другие изображения (например, растровые изображения) из этой папки (на вашем сервере)? У папки есть разрешение на чтение? – K3N

+0

@ Ken-AbdiasSoftware да, я могу загрузить другие изображения, и я также попытался установить разрешения 777 безрезультатно. – konapun

+0

Вы пробовали абсолютный путь для изображения на свой сервер? и в какой папке выполняется ваш js-скрипт (root,/js, ...)? – K3N

ответ

1

Сервер, на котором находится SVG должен отправлять правильные заголовки, и не каждый сервер настроен на это.

Там хороший гид здесь http://kaioa.com/node/45

Если вы используете Apache, вы можете добавить файл Htaccess в каталог с этим кодом:

AddType image/svg+xml svg svgz 
AddEncoding gzip svgz 

Это посылает заголовки служить SVG и тому сжатая версия, SVGZ.

Надеюсь, это поможет!