Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/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
Javascript SVG过滤器在Safari中不工作_Javascript_Html_Css_Safari_Svg Filters - Fatal编程技术网

Javascript SVG过滤器在Safari中不工作

Javascript SVG过滤器在Safari中不工作,javascript,html,css,safari,svg-filters,Javascript,Html,Css,Safari,Svg Filters,在Safari 11.0上,如果我将以下代码复制并粘贴到js控制台中,我会得到如图A所示的结果,在图A中,过滤器并没有应用于所有元素 然而,如果我在Chrome上做同样的事情,我会得到如图B所示的结果,过滤器已按预期应用于所有元素 我只是简单地添加了一个SVG过滤器,我想应用于整个HTML文档 有什么建议可以解释为什么这是在Chrome而不是Safari上实现的吗 var matrixValue = '0.299 0.587 0.114 0 0 0.299 0.587 0.114 0 0

在Safari 11.0上,如果我将以下代码复制并粘贴到js控制台中,我会得到如图A所示的结果,在图A中,过滤器并没有应用于所有元素

然而,如果我在Chrome上做同样的事情,我会得到如图B所示的结果,过滤器已按预期应用于所有元素

我只是简单地添加了一个SVG过滤器,我想应用于整个HTML文档

有什么建议可以解释为什么这是在Chrome而不是Safari上实现的吗

var matrixValue = '0.299 0.587 0.114 0 0  0.299 0.587 0.114 0 0      0.299 0.587 0.114 0 0      0 0 0 1 0'; 

var div = document.createElement('div');  
div.innerHTML = "<svg xmlns='http://www.w3.org/2000/svg' version='1.1'><defs><filter id='ulSvgFilterDoc2'><feColorMatrix type='matrix' values='" + matrixValue + "'></feColorMatrix></filter></defs></svg>"; 

div.setAttribute('class', 'ulSvgFilterDoc'); 
div.setAttribute('id', 'ulSvgFilterDoc'); 
div.setAttribute('style', 'display: none;'); 
document.getElementsByTagName('body')[0].append(div); 
document.getElementsByTagName('html')[0].setAttribute('style', 'filter: url("#ulSvgFilterDoc2")'); 
var matrixValue='0.299 0.587 0.114 0 0 0 0.299 0.587 0.114 0 0.299 0.587 0.114 0 0 0 0 1 0';
var div=document.createElement('div');
div.innerHTML=“”;
div.setAttribute('class','ulSvgFilterDoc');
div.setAttribute('id','ulSvgFilterDoc');
div.setAttribute('style','display:none;');
document.getElementsByTagName('body')[0].append(div);
document.getElementsByTagName('html')[0].setAttribute('style','filter:url('ulSvgFilterDoc2');
图A:狩猎

图B:铬

有趣。。。我最初认为这是因为
自定义元素,但当它工作时……所有内容都来自与过滤器相同的域吗?筛选器中存在跨站点限制。@MichaelMullany这些限制不只是筛选器本身吗?就像你不能加载跨站点过滤器,但你可以将其应用于任何内容。(事实上,由于我能够重新编程,我可以确定使用相同规则直接定位
g-XXX
元素确实有效。)我对此有点生疏-你说得对-你没有使用任何可污染的原语或输入信号,看起来这是一个WebKit错误。有趣的。。。我最初认为这是因为
自定义元素,但当它工作时……所有内容都来自与过滤器相同的域吗?筛选器中存在跨站点限制。@MichaelMullany这些限制不只是筛选器本身吗?就像你不能加载跨站点过滤器,但你可以将其应用于任何内容。(事实上,由于我能够重新编程,我可以确定使用相同规则直接定位
g-XXX
元素确实有效。)我对此有点生疏-你是对的-你没有使用任何可污染的原语或输入标记,看起来这是一个WebKit错误。