После небольшого исследования я обнаружил, что Chrome и Opera выполняют изображения внутри объекта foreignObject, если у них есть абсолютный путь, Firefox отображает изображения только в том случае, если они находятся в формате data-uri, потому что он не загружается любой внешний ресурс.Функция обнаружения изображений абсолютного url внутри foreignObject
Я пробовал несколько методов, но я не могу найти способ распознать это поведение, например, я попытался проверить размеры изображения в foreignObject, но они всегда правы, Firefox просто рисует прозрачный прямоугольник с таким же размером изображения.
Вы знаете, как это сделать?
КОД Эта ситуация трудно воспроизвести, но вы можете проверить это следующим образом:
- Перейти к Главной странице Google
- Открыть Firebug консоли или консоль JavaScript в Chrome
- выполнить это код:
:
var img = new Image();
img.src="data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc1MzgnIGhlaWdodD0nMTkwJz48Zm9yZWlnbk9iamVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJz48aW1nIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLml0L2ltYWdlcy9zcnByL2xvZ28xMXcucG5nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9Im1hcmdpbjogMHB4OyIvPjwvZm9yZWlnbk9iamVjdD48L3N2Zz4=";
document.body.appendChild(img);
на Chrome изображение логотипа видно, на Firefox это не так. Код SVG в кодировке base64, это исходный код:
<svg xmlns="http://www.w3.org/2000/svg" width="538" height="190">
<foreignObject width="100%" height="100%">
<img src="https://www.google.it/images/srpr/logo11w.png" xmlns="http://www.w3.org/1999/xhtml" style="margin: 0px;">
</foreignObject>
</svg>
могли бы вы предоставить некоторые примеры кода? –