Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Chrome не видит DOM подключаемого SVG через iframe (https://javascript.ru/forum/events/11643-chrome-ne-vidit-dom-podklyuchaemogo-svg-cherez-iframe.html)

FINoM 05.09.2010 04:07

Chrome не видит DOM подключаемого SVG через iframe
 
Сабж. Хочу на лету менять атрибуты тегов, но в хроме их значение является undefined, хотя в других браузерах, поддерживающих SVG такой проблемы нет.
<iframe class="someclass" src="blur.svg" width="300" height="300"></iframe>
Немного jQuery:
var blured = $("iframe.someclass");
alert(blured.contents().find('image#bluredImage').attr("width")); //undefined

monolithed 05.09.2010 11:14

alert(blured.contents().find($("img#bluredImage[width]"));


Для совместимости используйте Raphaël—JavaScript Library или библиотеки для поддержки Canvas в IE от Google ExplorerCanvas и fxCanvas

FINoM 05.09.2010 16:03

monolithed, спасибо за ответ, но я использую не прорисовку элементов, а фильтры, в частности Gaussian Blur. Так что нужно другое решение, которое позволит мне добраться до DOM SVG в хроме.

monolithed 05.09.2010 17:33

Ну тогда возможно подойдет вот это: jQuery SVG

пример использования:
var filter = svg.filter(defs, 'Some', 0, 0, 200, 120, {filterUnits: 'userSpaceOnUse'});
svg.filters.gaussianBlur(filter, 'blur', 'SourceAlpha', 4);

FINoM 05.09.2010 18:46

Скрипты слишком тяжеловесные, а задача достаточно небольшая. Пытаюсь вызвать функцию готовности из фрейма, но в хроме она так же не работает.
<svg xmlns="http://www.w3.org/2000/svg" 
     xmlns:xlink="http://www.w3.org/1999/xlink" onload="window.parent.somefunct();">
function somefunct() { alert("loaded");}
PS Что-то не так с bb-кодом [JS]

FINoM 05.09.2010 18:56

Подключил через iframe html файл, получил ту же проблему. Так что не в SVG дело.

Ребят, уже не знаю у кого спрашивать, на вас последняя надежда. Ответ, как мне кажется, достаточно прост, прошу высказывать хотя бы идеи.

tenshi 06.09.2010 03:59

домены-то совпадают?

FINoM 06.09.2010 04:02

Цитата:

Сообщение от tenshi
домены-то совпадают?

Да, это локальные файлы из одной папки.

John Cannaby 15.09.2010 14:47

у меня та же проблема. Локально Сhrome не находит во фрейме ничего, поэтому не работают ни jQuery.contents(), ни contentWindow.document, ни contentDocument. точнее первые два работают, только возвращают ошибку "Domains, protocols and ports must match.", а если тестить то же самое на сервере, то в хроме все работает отлично

tenshi 15.09.2010 17:32

а, локально-то да, хром не предоставляет доступ к содержимому локальных файлов - нужно сервер поднимать


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