svg представляет собой графику на основе xml, и вы можете добавить к ней Java-скрипты. Я попытался получить доступ к функциям скрипта, определенным в svg. Сценарий в моем SVG-то вроде этого:Доступ к скриптам svg
<svg ... onload="RunScript(evt);"...>
<script type="text/javascript">
...
function RunScript(loadEvent) {
// Get object in my html by id
var objElement = top.document.getElementById('objid1');
if (objElement)
{
// Extend object tag object's methods
objElement.SVGsetDimension = setDimension;
...
}
function setDimention(w, h) {...}
В моей основной HTML файла, SVG встроен в тег объекта, как это:
<object id="objid1" data="mygrahic.svg" ... >
<a href="#" onclick="document.getElementById('objid1').SVGsetDimention(10, 10);
return false;"
...>Set new dimention</a>...
Это один работает отлично. Однако, если файл XML SVG ссылается на полный URL (на другом сайте), как это:
<object id="objid1" data="http://www.artlibrary.net/myaccount/mygrahic.svg" ... >
коды не работают. Похоже, что я не могу прикрепить метод, определенный в моем сценарии svg, к методу в моем главном элементе тега html объекта, или верхний или документ недоступен в этом случае, или getElementById (..) просто не может найти мой объект-элемент в мой скрипт svg. Есть ли способ, который я могу сделать в скрипте svg xml, чтобы найти элемент html?
Не уверен, что эта проблема вызвана различными DOM, и нет способа, чтобы мои коды скриптов svg отображали другой объект или элемент DOM. Было бы неплохо, если бы было какое-то решение.
С какими браузерами вы ориентируетесь и тестируете? Если у этих браузеров нет встроенной SVG-поддержки, в которой вы используете SVG-плагин (-ы)? – 2008-10-29 17:20:28