05.09.2010, 04:07
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
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
|
|
05.09.2010, 11:14
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
alert(blured.contents().find($("img#bluredImage[width]"));
Для совместимости используйте Raphaël—JavaScript Library или библиотеки для поддержки Canvas в IE от Google ExplorerCanvas и fxCanvas
Последний раз редактировалось monolithed, 05.09.2010 в 11:36.
|
|
05.09.2010, 16:03
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
monolithed, спасибо за ответ, но я использую не прорисовку элементов, а фильтры, в частности Gaussian Blur. Так что нужно другое решение, которое позволит мне добраться до DOM SVG в хроме.
|
|
05.09.2010, 17:33
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Ну тогда возможно подойдет вот это: jQuery SVG
пример использования:
var filter = svg.filter(defs, 'Some', 0, 0, 200, 120, {filterUnits: 'userSpaceOnUse'});
svg.filters.gaussianBlur(filter, 'blur', 'SourceAlpha', 4);
|
|
05.09.2010, 18:46
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Скрипты слишком тяжеловесные, а задача достаточно небольшая. Пытаюсь вызвать функцию готовности из фрейма, но в хроме она так же не работает.
<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:49.
|
|
05.09.2010, 18:56
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Подключил через iframe html файл, получил ту же проблему. Так что не в SVG дело.
Ребят, уже не знаю у кого спрашивать, на вас последняя надежда. Ответ, как мне кажется, достаточно прост, прошу высказывать хотя бы идеи.
Последний раз редактировалось FINoM, 05.09.2010 в 20:54.
|
|
06.09.2010, 03:59
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
домены-то совпадают?
__________________
.ня
|
|
06.09.2010, 04:02
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от tenshi
|
домены-то совпадают?
|
Да, это локальные файлы из одной папки.
|
|
15.09.2010, 14:47
|
Новичок на форуме
|
|
Регистрация: 16.08.2010
Сообщений: 2
|
|
у меня та же проблема. Локально Сhrome не находит во фрейме ничего, поэтому не работают ни jQuery.contents(), ни contentWindow.document, ни contentDocument. точнее первые два работают, только возвращают ошибку "Domains, protocols and ports must match.", а если тестить то же самое на сервере, то в хроме все работает отлично
|
|
15.09.2010, 17:32
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
а, локально-то да, хром не предоставляет доступ к содержимому локальных файлов - нужно сервер поднимать
__________________
.ня
|
|
|
|