Обновите файл SVG с помощью Ajax, получив некоторую информацию из сервлета Java - PullRequest
2 голосов
/ 03 августа 2010

Я написал сервлет Java, который получает изображение SVG.Тип контента для этого сервлета: CONTENT_TYPE = "image/svg+xml";

Этот определенный сервлет интегрируется в более крупное (ADF11g) приложение в виде встроенного кадра.Код должен выглядеть знакомо, если вы привыкли к JSP:

    <af:inlineFrame source="servlet?Filename=TestSVG1&amp;width=1024&amp;height=1024"                            
                    inlineStyle="width
                    :#{session.graphSVGWidth}px; height:#{session.graphSVGHeight}px; border: none">
    </af:inlineFrame>

Этот SVG содержит всплывающее окно, которое позволяет пользователю взаимодействовать «с изображением», отправляя информацию на сервер с помощью вызовов Ajax.

Например, эта часть JavaScript, используемая SVG:

function loadXMLDocPOST(params) {
    var xmlhttp = getXmlHttp();
    xmlhttp.open("POST", 'servlet', true);

    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", params.length);
    xmlhttp.setRequestHeader("Connection", "close");
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            /* Do something here */   
        }
        else {
            //alert('xmlhttp.status_r2=' + xmlhttp.status);
        }
    }
    xmlhttp.send(params);
}

function editAction(Filename, Name){
    loadXMLDocPOST(...)
}

Вызов Ajax успешен, но проблема в том, что после того, как я инициирую некоторые действия из SVG,Я хочу обновить изображение, содержащееся во встроенном фрейме (/* Do something here */)

Итак, как мне перерисовать SVG изнутри SVG :)?Проблема в том, что innerHTML не работает в SVG.document.write() тоже не работает.Так есть ли у вас какие-либо предложения?

1 Ответ

0 голосов
/ 04 августа 2010

Вы можете использовать parent.XXX для доступа к глобальным переменным и функциям документа HTML, который включает этот svg.

, таким образом, svg может взаимодействовать с содержащимся в нем html документом.

например:

parent.document.write() 

работает в svg!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...