gpt4 book ai didi

javascript - Chrome 不会调整 SVG 图像的大小

转载 作者:行者123 更新时间:2023-11-29 10:54:05 25 4
gpt4 key购买 nike

我想读入一个 SVG 文件,确定它的宽度和高度以便缩放它。目前,我的代码如下所示:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="all">@import "style/style.css";</style>
<meta name="svg.render.forceflash" content="false" />
<script src="svg.js" data-path="svgweb/src/"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"> </script>
<script type="text/javascript">
$(window).load(function() {
function loadContent(){
/* SVG */
var svg = document.getElementById('myimage')

/* Adapt size of SVG */
try {
SVGDoc = svg.contentDocument;
} catch (Err) {
SVGDoc = svg.getSVGDocument;
}
var root = SVGDoc.documentElement;
if (root.attributes['width'] != null) {
var width = root.attributes['width'].nodeValue;
width = width.substring(0, width.length - 2);
width = (width * 1.25);
var height = root.attributes['height'].nodeValue;
height = height.substring(0, height.length - 2);
height = (height * 1.25);
svg.width = width;
svg.height = height;
}
</script>
</head>
<body>
<div id="map">
<!--[if IE]>
<object id="myimage" src="images/myimage.svg" classid="image/svg+xml">
<![endif]-->
<!--[if !IE]>-->
<object id="myimage" data="images/myimage.svg" type="image/svg+xml">
<!--<![endif]-->
</object>
</div>
</body>
</html>

此代码在 Firefox 中运行良好(尽管可以在很短的时间内看到调整大小)。但是,Chrome 中的开发人员工具出现了问题:Uncaught TypeError: Cannot read property 'documentElement' of undefined for the line "var root = SVGDoc.documentElement;"。此外,Chrome 不会调整图像的大小。

我找不到适用于两种浏览器的解决方案。

最佳答案

首先,getSVGDocument()是方法,不是属性。你必须调用它:

SVGDoc = svg.getSVGDocument();

其次,SVGDoc 本身应该在某处声明:

var SVGDoc;

三、Chrome的same origin policy does not like file: 协议(protocol)。您必须提供 SVG 图像,而不是从本地文件中读取它们。

关于javascript - Chrome 不会调整 SVG 图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4139353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com