Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Почему одни data:image/svg+xml срабатывают, другие нет (https://javascript.ru/forum/xhtml-html-css/11653-pochemu-odni-data-image-svg-xml-srabatyvayut-drugie-net.html)

FINoM 05.09.2010 22:26

Почему одни data:image/svg+xml срабатывают, другие нет
 
Сабж. Имеется в виду использование разных SVG в качестве фона.
ЗЫ. Готовлю урлы через
<?php
function myUrlEncode($string) {
    $entities = array('%20');
    $replacements = array("+");
    return str_replace( $replacements, $entities, urlencode($string));
}
?>

Аргумент функции - содержимое SVG

Gvozd 05.09.2010 23:52

впадлу смотреть в справку
но кажется ваша myUrlEncode нчием не отличается от стандартной rawurlencode
прочитайте ее подробное описание
PS вы разделом не ошиблись?
вы спрашиваете про SVG, а выкладываете PHP-код
вам следует выложить уже сгенерированный сервером код(сведенный к минимальному нерабочему), и выложить его тут вместе с вопросом

FINoM 06.09.2010 00:01

Цитата:

Сообщение от Gvozd
вы спрашиваете про SVG, а выкладываете PHP-код

Это для того, чтоб понятно было каким образом я генерировал data. C rawurlencode, кстати, тоже не работает. Код, если нужно, вот:
<iframe class="jqOdessImageBlur" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20%0D%0A%20%20%2
0%20%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22100%25%22%20height%3
D%22100%25%22%3E%0D%0A%3Cimage%20xlink%3Ahref%3D%22design%2Fimg%2Frainbow.jpg%22%20width%3D%22300%22
%20height%3D%22300%22%20style%3D%22filter%3Aurl%28%23Gaussian_Blur%29%3B%22%20id%3D%22bluredImage%22%3E%
0D%0A%09%3Cset%20id%3D%22xlink_href%22%20attributeName%3D%22xlink%3Ahref%22%20to%3D%22design%2Fimg%2Frain
bow.jpg%22%20begin%3D%220s%22%20dur%3D%220s%22%20%2F%3E%0D%0A%3C%2Fimage%3E%0D%0A%3Cdefs%3E%0D
%0A%3Cfilter%20id%3D%22Gaussian_Blur%22%3E%0D%0A%3CfeGaussianBlur%20in%3D%22SourceGraphic%22%20stdDeviation
%3D%225%22%20%2F%3E%0D%0A%3C%2Ffilter%3E%0D%0A%3C%2Fdefs%3E%0D%0A%3C%2Fsvg%3E" width="300" 
height="300" id="qq"></iframe>
Только уберите переносы строк, я их тут поставил, чтоб страница не разлезлась.

Исходник вот:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   <svg xmlns="http://www.w3.org/2000/svg" 
     xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%">
<image xlink:href="design/img/rainbow.jpg" width="300" height="300" style="filter:url(#Gaussian_Blur);" id="bluredImage">
	<set id="xlink_href" attributeName="xlink:href" to="design/img/rainbow.jpg" begin="0s" dur="0s" />
</image>
<defs>
<filter id="Gaussian_Blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="5" />
</filter>
</defs>
</svg>

Gvozd 06.09.2010 00:58

Код:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%">
<image xlink:href="design/img/rainbow.jpg" width="300" height="300" style="filter: url(&quot;#Gaussian_Blur&quot;);" id="bluredImage">
        <set id="xlink_href" attributeName="xlink:href" to="design/img/rainbow.jpg" begin="0s" dur="0s"/>
</image>
<defs>
<filter id="Gaussian_Blur">
<fegaussianblur in="SourceGraphic" stdDeviation="5"/>
</filter>
</defs>
</svg>

это то, что вам надо?
именно атк браузер распознал ваш код

FINoM 06.09.2010 01:11

Да, за исключением спецсимволов вместо нормальных кавычек здесь:
url(&quot;#Gaussian_Blur&quot;)


Как правильно кодировать урл, чтоб "железобетонно"?

tenshi 06.09.2010 03:57

1. svg можно вставлять прямо в тело страницы
2. чтобы железобетонно надо применять base64

FINoM 06.09.2010 04:07

Цитата:

Сообщение от tenshi
1. svg можно вставлять прямо в тело страницы

Не нашел способа, кроме как переименовать html файл в xhtml, но в этом случае ИЕ его не открывает, а предлагает скачать.
Цитата:

Сообщение от tenshi
2. чтобы железобетонно надо применять base64

Если не разберусь с другой темой на этом форуме (про SVG и DOM), то придется менять содержимое параметров заменой части строки.
Цитата:

Сообщение от Gvozd
именно атк браузер распознал ваш код

Скажите, пожалуйста, каким образом Вы это сделали.

Gvozd 06.09.2010 08:14

Цитата:

Сообщение от FINoM
Скажите, пожалуйста, каким образом Вы это сделали.

посмотрел в фаербаге же


Часовой пояс GMT +3, время: 23:58.