Я написал сервлет Java, который получает изображение SVG.Тип контента для этого сервлета: CONTENT_TYPE = "image/svg+xml";
Этот определенный сервлет интегрируется в более крупное (ADF11g) приложение в виде встроенного кадра.Код должен выглядеть знакомо, если вы привыкли к JSP:
<af:inlineFrame source="servlet?Filename=TestSVG1&width=1024&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()
тоже не работает.Так есть ли у вас какие-либо предложения?