[英]Update SVG file using Ajax, by retrieving some information from a Java Servlet
我已經編寫了一個Java Servlet來檢索SVG圖像。 此Servlet的內容類型為CONTENT_TYPE = "image/svg+xml";
這個特定的servlet被作為內聯框架集成到一個更大的(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調用向服務器發送信息,從而與圖片進行交互。
例如,這是SVG正在使用的JavaScript的一部分:
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()
也不起作用。 那么您有什么建議嗎?
您可以使用parent.XXX來訪問包含該svg的HTML文檔的全局變量和函數。
這樣,svg可以與其包含的html文檔進行交互。
例如:
parent.document.write()
在svg中工作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.