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 |
alert(blured.contents().find($("img#bluredImage[width]")); Для совместимости используйте Raphaël—JavaScript Library или библиотеки для поддержки Canvas в IE от Google ExplorerCanvas и fxCanvas |
monolithed, спасибо за ответ, но я использую не прорисовку элементов, а фильтры, в частности Gaussian Blur. Так что нужно другое решение, которое позволит мне добраться до DOM SVG в хроме.
|
Ну тогда возможно подойдет вот это: jQuery SVG
пример использования: var filter = svg.filter(defs, 'Some', 0, 0, 200, 120, {filterUnits: 'userSpaceOnUse'}); svg.filters.gaussianBlur(filter, 'blur', 'SourceAlpha', 4); |
Скрипты слишком тяжеловесные, а задача достаточно небольшая. Пытаюсь вызвать функцию готовности из фрейма, но в хроме она так же не работает.
<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] |
Подключил через iframe html файл, получил ту же проблему. Так что не в SVG дело.
Ребят, уже не знаю у кого спрашивать, на вас последняя надежда. Ответ, как мне кажется, достаточно прост, прошу высказывать хотя бы идеи. |
домены-то совпадают?
|
Цитата:
|
у меня та же проблема. Локально Сhrome не находит во фрейме ничего, поэтому не работают ни jQuery.contents(), ни contentWindow.document, ни contentDocument. точнее первые два работают, только возвращают ошибку "Domains, protocols and ports must match.", а если тестить то же самое на сервере, то в хроме все работает отлично
|
а, локально-то да, хром не предоставляет доступ к содержимому локальных файлов - нужно сервер поднимать
|
Часовой пояс GMT +3, время: 01:40. |