在 FF 和 IE 中,调用时会检索 SVG (SVG) 文档$(document ).ready()
。
在 Chrome 中,调用getSVGDocument
时返回 null 而不是。$(document ).ready()
(虽然它似乎在大约 7 毫秒后找到它,如 所示setTimeout
。)
为什么 Chrome<embed>
在 的那一刻找不到加载的 SVG 文档$(document ).ready()
,而 FF 和 IE 可以?
(我不想使用 asetTimeout(7ms)
只是为了等待 Chrome 赶上来!!!因为那是……蹩脚的。)
下面的代码简单代码显示了场景: FF 中的RETURNS SVGDocument + Chrome 中的 IE RETURNS NULL(除非调用getSVG()
延迟 7 毫秒!!!)。
注意:此代码需要localhost
使用 Chrome 在服务器上运行;这是一个单独的 Chrome 问题。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
getSVG = function () {
var el = document.getElementById("embedId");
SVGDoc = el.getSVGDocument();
console.log(SVGDoc); // returns null in Chrome
}
$(document).ready(function () {
getSVG();
//setTimeout("getSVG()", 7); // this works, showing that Chrome is NOT "ready"
});
</script>
</head>
<body>
<embed id="embedId" src="man.svg" type="image/svg+xml" width="50" height="50"/>
</body>
</html>