我正在使用fabric.js将SVGgraphic加载到画布中.因为通过loadSVGFromURL加载它在IE9中不起作用,所以我决定使用loadSVGFromString.
现在SVG已加载并显示在IE9中,但渐变消失了.我对SVG Markup不太熟悉,但它看起来好像radialGradient被正确标记了.
标记是否不正确或fabric.js是否错误地解析了标记?
我举了一个简单的例子:http: //jsfiddle.net/t8bx5/
var canvas;
$(function() {
var svg, jsonCanvas;
svg = new String('<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 250 250" enable-background="new 0 0 250 250" xml:space="preserve"><radialGradient id="SVGID_1_" cx="1040.036" cy="1075.761" r="317.5209" gradientTransform="matrix(0.8307 0 0 -0.8307 -639.1652 1063.4171)" gradientUnits="userSpaceOnUse"> <stop offset="0.2393" style="stop-color:#DBF230"/> <stop offset="0.3935" style="stop-color:#D5EF2D"/> <stop offset="0.5999" style="stop-color:#C4E722"/> <stop offset="0.8346" style="stop-color:#A9DA10"/> <stop offset="1" style="stop-color:#91CF00"/></radialGradient><path fill="url(#SVGID_1_)" d="M8.7,143.5c0,2.2,9.8,4.3,12,4.3c3.3,0,6.5,1.1,9.8,1.1c1.1,0,7.6,0,8.7,0c-4.3,2.2-6.5,3.3-7.6,4.3 c-5.4,4.3-12,9.8-15.2,15.2c-2.2,3.3-2.2,7.6,2.2,9.8c4.3,1.1,10.9,0,16.3-2.2c4.3-1.1,8.7-2.2,12-4.3c7.6-3.3,15.2-7.6,22.8-12 c7.6-5.4,15.2-10.9,22.8-16.3c2.2-2.2,5.4-4.3,7.6-6.5c-12,10.9-23.9,22.8-33.7,34.8c-7.6,8.7-15.2,17.4-19.6,28.3 c-2.2,4.3-4.3,9.8,0,14.1s15.2-3.3,18.5-5.4c6.5-4.3,10.9-9.8,16.3-15.2c4.3-5.4,8.7-10.9,12-16.3c4.3-7.6,8.7-16.3,13-23.9 c0-1.1,1.1-2.2,1.1-3.3c0,0,0,1.1-1.1,1.1c-5.4,12-7.6,25-12,38c-3.3,13-9.8,23.9-8.7,39.1c0,4.3,1.1,21.7,8.7,12 c10.9-10.9,13-28.3,15.2-43.5c2.2-13,4.3-25,8.7-35.9c0,2.2,0,3.3,0,5.4c-1.1,8.7-1.1,18.5,0,27.2c1.1,13,4.3,31.5,10.9,40.2 c4.3,5.4,8.7,5.4,10.9,5.4c1.1,1.1,2.2,3.3,4.3,3.3c4.3,1.1,6.5-4.3,7.6-7.6c6.5-18.5,3.3-37-2.2-55.4c-2.2-9.8-5.4-18.5-8.7-28.3 c0-1.1-1.1-2.2-1.1-3.3c3.3,6.5,6.5,12,9.8,18.5c5.4,9.8,9.8,19.6,15.2,27.2c5.4,6.5,9.8,12,16.3,17.4c5.4,4.3,13,10.9,20.7,9.8 c9.8-1.1,1.1-16.3-1.1-20.7c-5.4-10.9-14.1-20.7-21.7-30.4c-1.1-1.1-5.4-5.4-7.6-7.6c-6.5-6.5-8.7-8.7-15.2-17.4 c14.1,15.2,29.3,29.3,47.8,38c6.5,3.3,16.3,6.5,23.9,4.3c8.7-2.2-1.1-13-4.3-15.2l-1.1-1.1c1.1-1.1,5.4,1.1,6.5,1.1 …Run Code Online (Sandbox Code Playgroud) 我编写了一个小函数,将 Windows 路径“转换”为 OSX 路径并在 Finder 中打开它。该函数可以与 bash 完美配合,但不能与 zsh 配合使用(我使用 oh-my-zsh)。
问题是它解析特定的反斜杠组合,例如:\f、\a、\01、\02、\03等......
例如,此路径字符串是输入:
"\60_Project\6038_Projekt_Part\05_development\assets\img\facebook"
Run Code Online (Sandbox Code Playgroud)
在翻译函数之后,\f序列(来自img\facebook)被错误地翻译为空格,产生输出:
"/60_Project/6038_Project_Part_developmentssets/img
acebook"
Run Code Online (Sandbox Code Playgroud)
我的目标是只粘贴 Windows 路径,而不必手动更改任何内容。
如何使用 zsh 转义或引用字符串以获得我想要的结果?
这是我写的代码:
"\60_Project\6038_Projekt_Part\05_development\assets\img\facebook"
Run Code Online (Sandbox Code Playgroud)
用法:
"/60_Project/6038_Project_Part_developmentssets/img
acebook"
Run Code Online (Sandbox Code Playgroud)
结果应该是 Finder 打开:
/Volumes/myvolume/60_Project/6038_Project_Part/05_development/assets/img/facebook
Run Code Online (Sandbox Code Playgroud)