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
Safari中的html2canvas未在SVG路径上呈现Javascript style.fill_Javascript_Svg_Path_Fill_Html2canvas - Fatal编程技术网

Safari中的html2canvas未在SVG路径上呈现Javascript style.fill

Safari中的html2canvas未在SVG路径上呈现Javascript style.fill,javascript,svg,path,fill,html2canvas,Javascript,Svg,Path,Fill,Html2canvas,我正在尝试解决这个问题:在Apple Safari中,我的正在使用html2canvas正确呈现,但任何SVG路径除外,例如我使用以下脚本进行了修改: document.getElementById('test').style.fill = 'blue'; PNG文件在Mac和PC上的Firefox和Chrome中正确下载。但是,在Safari(台式机和移动设备上)中,PNG文件的下载保持不变 关于如何在Safari中实现这一点,我已经没有主意了 我创建此示例时遵循了我在网站上使用的基本原则:

我正在尝试解决这个问题:在Apple Safari中,我的
正在使用html2canvas正确呈现,但任何SVG路径除外,例如
我使用以下脚本进行了修改:

document.getElementById('test').style.fill = 'blue';
PNG文件在Mac和PC上的Firefox和Chrome中正确下载。但是,在Safari(台式机和移动设备上)中,PNG文件的下载保持不变

关于如何在Safari中实现这一点,我已经没有主意了

我创建此示例时遵循了我在网站上使用的基本原则:

  • 该网站显示了一个黑色三角形
  • 单击“Click Me!”后,路径将填充“blue”,PNG将被下载
  • 在Safari上,下载的PNG文件显示黑色三角形,而在所有其他浏览器上,PNG文件显示屏幕上显示的蓝色三角形

    这是我的示例,使用:

    函数saveCanvas(){
    document.getElementById('test').style.fill='blue';
    html2canvas(document.querySelector(“#wrap”))
    。然后(画布=>{
    var image=canvas.toDataURL(“image/png”)
    .replace(“图像/png”、“图像/octet流”);
    var a=document.createElement('a');
    a、 href=图像;
    a、 下载='image.png';
    a、 单击();
    });
    }
    
    点击我

    //不工作。
    $('#canvas svg.BODY').css('fill','blue');
    //工作。
    $('#canvas svg').append('.BODY{fill:blue;}');
    
    您可以随时尝试引发webkit错误。可能与此相关,
    // Not working.
    $('#canvas svg .BODY').css('fill', 'blue');
    // Working.
    $('#canvas svg').append('<style type="text/css">.BODY{fill:blue;}</style>');