Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个SVG在Chrome上运行良好,但在Firefox上却不可见?_Javascript_Google Chrome_Firefox_Svg - Fatal编程技术网

Javascript 为什么这个SVG在Chrome上运行良好,但在Firefox上却不可见?

Javascript 为什么这个SVG在Chrome上运行良好,但在Firefox上却不可见?,javascript,google-chrome,firefox,svg,Javascript,Google Chrome,Firefox,Svg,我正在使用这个SVG创建一个简单的信号电平表: 哇。。。这原来是一个简单的改变,但令人惊讶的是,它产生了这样的后果。我只需将width=“2”height=“1.6”从内部的svg标记移动到外部的svg标记 ... 如果没有外部设置的宽度和高度,Firefox不仅对图形的大小和位置感到困惑,而且在调用这些元素的getBBox()函数时,重新定位这些元素的JavaScript代码由于一个不太有用的、通用的NS\u错误\u失败而崩溃 我根本不会有两层SVG标签,但事实证明,当其他元素改变位置或

我正在使用这个SVG创建一个简单的信号电平表:


哇。。。这原来是一个简单的改变,但令人惊讶的是,它产生了这样的后果。我只需将
width=“2”height=“1.6”
从内部的
svg
标记移动到外部的
svg
标记


...
如果没有外部设置的宽度和高度,Firefox不仅对图形的大小和位置感到困惑,而且在调用这些元素的
getBBox()
函数时,重新定位这些元素的JavaScript代码由于一个不太有用的、通用的
NS\u错误\u失败而崩溃


我根本不会有两层SVG标签,但事实证明,当其他元素改变位置或大小时,这对于调整整个信号表的位置以及应用颜色过滤器是必要的。

哇。。。这原来是一个简单的改变,但令人惊讶的是,它产生了这样的后果。我只需将
width=“2”height=“1.6”
从内部的
svg
标记移动到外部的
svg
标记


...
如果没有外部设置的宽度和高度,Firefox不仅对图形的大小和位置感到困惑,而且在调用这些元素的
getBBox()
函数时,重新定位这些元素的JavaScript代码由于一个不太有用的、通用的
NS\u错误\u失败而崩溃


我根本不会有两层SVG标签,但事实证明,当其他元素改变位置或大小时,这对于调整整个信号表的位置以及应用颜色过滤器是必要的。

嘿,伙计,我只是改变SVG元素的宽度和高度(比如乘以100,因为你的宽度是2px,为什么我无法理解)所有组件都在它们应该位于的位置。啊,是的,我是在firefox上做的。可能是firefox上默认隐藏的溢出或其他问题。@Mortimer,我已经缩小了问题的范围,不仅仅是宽度和高度--更改它们可以帮助使元素可见,但仍然无法使其精确地达到正确的大小和位置。有两个问题。(1) Firefox不喜欢
setAttribute('x',value)
setAttributeNS(null,'x',value)
,这两者都让Chrome感到高兴。Firefox想要
setAttributeNS('http://www.w3.org/1999/xlink“,”x',value)
——这是Chrome不喜欢的!(2) Chrome可以使用“10”等无单位值,但Firefox需要“10px”等单位。问题是,这真的应该是一个单位减去……值,或者更具体地说,没有字面上指定的单位,使用包含viewBox的隐含单位。奇怪的是Firefox根本不关心实际的单位——它对待px、em、cm等都一样,而且对任何单位都不太奇怪。这比我想象的还要糟糕!只需对某些元素(函数已明确定义)调用
getBBox()
,就会引发异常。我开始认为Firefox不能胜任这项任务。好吧,试着使用canvas,它比svg更轻,速度更快,而且在任何浏览器上我都没有任何问题。或者,如果您不能只使用canvas,请检查它是哪个浏览器,并采取适当的措施。这里是如何-嘿,mate,我只需更改svg元素的宽度和高度(比如乘以100,因为你的宽度是2px,为什么这超出了我的理解范围),所有组件都在它们应该位于的位置。啊,是的,我是在firefox上做的。可能是firefox上默认隐藏的溢出或其他问题。@Mortimer,我已经缩小了问题的范围,不仅仅是宽度和高度--更改它们可以帮助使元素可见,但仍然无法使其精确地达到正确的大小和位置。有两个问题。(1) Firefox不喜欢
setAttribute('x',value)
setAttributeNS(null,'x',value)
,这两者都让Chrome感到高兴。Firefox想要
setAttributeNS('http://www.w3.org/1999/xlink“,”x',value)
——这是Chrome不喜欢的!(2) Chrome可以使用“10”等无单位值,但Firefox需要“10px”等单位。问题是,这真的应该是一个单位减去……值,或者更具体地说,没有字面上指定的单位,使用包含viewBox的隐含单位。奇怪的是Firefox根本不关心实际的单位——它对待px、em、cm等都一样,而且对任何单位都不太奇怪。这比我想象的还要糟糕!只需对某些元素(函数已明确定义)调用
getBBox()
,就会引发异常。我开始认为Firefox不能胜任这项任务。好吧,试着使用canvas,它比svg更轻,速度更快,而且在任何浏览器上我都没有任何问题。或者,如果您不能只使用canvas,请检查它是哪个浏览器,并采取适当的措施。以下是如何-