我使用javascript
和jquery
构建了一个可视化组件库。在名为Flags的组件中,我在svg
调用中将jquery's ajax
文档作为repsonse。
首先,我尝试在svg
中添加dataType:xml
jquery ajax()
文档和以下代码:
var container = $(document.createElement("div"));
var importedSVGRootElement = document.importNode(this.flag.documentElement, true);
container.append(importedSVGRootElement);
这在Chrome和jsfiddle中都可以正常使用。后来我将其更改为embed
标签,如下所示,按照我的要求维护标志序列。
var stampDiv = $(document.createElement("embed")).attr("src", this.flag + '?apikey=' + Data.apiKey).attr("type", "image/svg+xml");
container.append(flagDiv);
这在Chrome和jsfiddle上也运行良好。但是2天前它停止了对jsfiddle的工作。我无法确定问题,因此我最终将其更改为img
标记,如下所示:
var stampDiv = $(document.createElement("img")).attr("src", this.flag+ '?apikey=' + Data.apiKey);
container.append(flagDiv);
svg
因为img
适用于所有三种主要浏览器和jsfiddle。我的问题是为什么embed src=svg
停止了对jsfiddle的工作?如果文档在浏览器中显示为svg
,我无法修改img
文档。附加svg
后我需要编辑它。
更新
IE和FF上的JSFiddle支持object
的{{1}}和embed
标记。但Chrome上的JSFiddle不会显示svg
和svg
中的object
。
示例 JSFiddle example to demonstrate the issue。这个小提琴在FF和IE中运行良好但在Chrome中不起作用。我使用的是Chrome版 37.0.2062.120 。
如何让embed
代码在3个主流浏览器(Chrome,FF,IE)和embed
上同时适用于svg
???