Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
在svg中呈现javascript_Javascript_Svg - Fatal编程技术网

在svg中呈现javascript

在svg中呈现javascript,javascript,svg,Javascript,Svg,将js片段添加到svg文件会在浏览器(Firefox)中呈现,但当我将同一文件转换为某些输出格式(如png或pdf等)时,javascript部分不会呈现,也不会显示在输出文件中。下面是我试图做的(围绕路径形状绘制一个填充矩形): 大多数SVG编辑器、查看器和转换器可能不会在SVG文档中执行JavaScript;他们期望静态XML文本文件。(如果将SVG加载为图像或CSS背景图像,这甚至适用于浏览器。) 若您的SVG文档显示在浏览器中(作为文档,所以JS被解释并运行),那个么您可以使用 复制(

将js片段添加到svg文件会在浏览器(Firefox)中呈现,但当我将同一文件转换为某些输出格式(如png或pdf等)时,javascript部分不会呈现,也不会显示在输出文件中。下面是我试图做的(围绕
路径
形状绘制一个填充矩形):


大多数SVG编辑器、查看器和转换器可能不会在SVG文档中执行JavaScript;他们期望静态XML文本文件。(如果将SVG加载为图像或CSS背景图像,这甚至适用于浏览器。)

若您的SVG文档显示在浏览器中(作为文档,所以JS被解释并运行),那个么您可以使用

复制(document.documentElement.outerHTML)


命令:它应该放置SVG源代码,甚至包含JS生成的元素和属性。(它还将包括
标记,但由于它们的结果已经存在,因此不再需要它们,因此您可以安全地删除它们。或者,您可以在复制之前使用
while(x=document.querySelector('script'))x.remove();copy(document.documentElement)
,大多数SVG编辑器,查看器和转换器可能不会在SVG文档中执行JavaScript;他们期望静态XML文本文件。(如果将SVG加载为图像或CSS背景图像,这甚至适用于浏览器。)

若您的SVG文档显示在浏览器中(作为文档,所以JS被解释并运行),那个么您可以使用

复制(document.documentElement.outerHTML)


命令:它应该放置SVG源代码,甚至包含JS生成的元素和属性。(它还将包括
标记,但由于它们的结果已经存在,因此不再需要它们,因此您可以安全地删除它们。或者,您可以在复制之前使用
while(x=document.querySelector('script'))x.remove();copy(document.documentElement)

我不明白你想用这个脚本实现什么。正确设置SVG元素的尺寸,那么该脚本元素就没有存在的理由了?@Mike'Pomax'Kamermans无论
路径
元素移动到哪里,脚本都会用矩形标记形状。这在我正在编写的应用程序中是必需的。然后,至少要确保您使用了所有正确的属性和名称,如:SVG中没有“text/javascript”,这是HTML规范中使用的mimetype。但是,有“application/ecmascript”。但话说回来:许多SVG实用程序(非常正确)没有嵌入完整的javascript引擎,因此即使您编写了完美的SVG:检查您使用的工具是否支持SVG中的ECMAScript。(也可以认为,如果这不是动态生成的SVG,那么脚本元素就没有任何用途。路径是固定的,不需要每次SVG运行时都运行代码)。我不明白你想用这个脚本实现什么。正确设置SVG元素的维度,那么这个脚本元素就没有存在的理由了吗?@Mike'Pomax'Kamermans这个脚本用一个矩形来标记形状,不管
路径
元素移动到哪里。这是我正在编写的应用程序所需要的。然后在v至少要确保您使用了所有正确的属性和名称,如:SVG中没有“text/javascript”,这是HTML规范中使用的mimetype。但是,有“application/ecmascript”。不过,有很多SVG实用程序(非常正确)没有嵌入一个完整的JavaScript引擎,所以即使你编写完美的SVG:检查你正在使用的工具支持SVG中的ECMAScript。(同时,如果这不是动态生成的SVG,那么这个脚本元素没有任何用途。路径是固定的,不需要每次SVG运行时都运行代码)使用控制台时效果很好。你知道在浏览器之外的应用程序中实现相同结果的任何方法吗?例如,可以从命令行实现吗?我认为最简单的方法可能是让控制台计算每个图示符的矩形的x y宽度高度,然后将其保存在应用程序中。com要记住的是尝试无头浏览器——这将满足“控制台”的要求部分但仍然是全功能浏览器。它广泛用于从HTML生成PDF和自动化浏览器相关任务,但通常它应该能够完成普通浏览器能够完成的任何事情;希望在处理SVG方面没有问题。使用控制台这非常有效。您知道在应用程序中实现相同结果的任何方法吗在浏览器之外的ion?例如,可以从命令行执行吗?我认为最简单的方法可能是让控制台计算每个图示符的矩形的x y宽度高度,然后将其保存在应用程序中。想到的唯一选项是尝试无头浏览器-这将满足“控制台”的要求部分但仍然是全功能浏览器。它被广泛用于从HTML生成PDF和自动化与浏览器相关的任务,但一般来说,它应该能够完成普通浏览器所能做的任何事情;希望在处理SVG方面没有问题。