从 IE 11 中的 iframe 获取 html 代码作为字符串
Get html code as string from iframe in IE 11
在我的项目中,我正在加载 iframe,其中有一些 svg 代码,我需要将其作为字符串放入我的脚本中。在 Chrome、Firefox、Opera、Safari、Edge 中一切正常,但我在 IE 11 中遇到一些问题。
HTML:
<div class="iframe-container">
<iframe id="my-iframe">
...
<svg id="my-svg"></svg>
...
</iframe>
</div>
jQuery
var iframe = $("#my-iframe");
var svg = iframe.contents().find("#my-svg");
var svgText = $(svg[0]).html();
此解决方案在 IE 11 中不起作用,因为在控制台中我得到的 svgText 为 undefined
,我认为问题出在这里:var svgText = $(svg[0]).html()
但我做错了什么?
问题解决了,我不得不使用XMLSerializer
解决方案:
var iframe = $("#my-iframe");
var svg = iframe.contents().find("#my-svg");
var svgText = new XMLSerializer().serializeToString(svg[0]);
在我的项目中,我正在加载 iframe,其中有一些 svg 代码,我需要将其作为字符串放入我的脚本中。在 Chrome、Firefox、Opera、Safari、Edge 中一切正常,但我在 IE 11 中遇到一些问题。
HTML:
<div class="iframe-container">
<iframe id="my-iframe">
...
<svg id="my-svg"></svg>
...
</iframe>
</div>
jQuery
var iframe = $("#my-iframe");
var svg = iframe.contents().find("#my-svg");
var svgText = $(svg[0]).html();
此解决方案在 IE 11 中不起作用,因为在控制台中我得到的 svgText 为 undefined
,我认为问题出在这里:var svgText = $(svg[0]).html()
但我做错了什么?
问题解决了,我不得不使用XMLSerializer
解决方案:
var iframe = $("#my-iframe");
var svg = iframe.contents().find("#my-svg");
var svgText = new XMLSerializer().serializeToString(svg[0]);