1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-09-14 23:12:28 +02:00

DOM Inspector: Fallback to .childNodes when .children not present (#2242)

When the browser does not support .children on the svgRoot element
(MS Edge, for example), filter childNodes for elements and use that
list instead.
This commit is contained in:
Nik Rolls 2017-02-28 19:19:00 +13:00 committed by Raymond Hill
parent 798e21de36
commit a121f2261d

View File

@ -810,6 +810,17 @@ var elementsFromSpecialSelector = function(selector) {
/******************************************************************************/
var getSvgRootChildren = function() {
if ( svgRoot.children ) {
return svgRoot.children;
} else {
var childNodes = Array.prototype.slice.apply(svgRoot.childNodes);
return childNodes.filter(function(node) {
return node.nodeType === Node.ELEMENT_NODE;
});
}
};
var highlightElements = function(scrollTo) {
var wv = pickerRoot.contentWindow.innerWidth;
var hv = pickerRoot.contentWindow.innerHeight;
@ -818,6 +829,7 @@ var highlightElements = function(scrollTo) {
var xl, xr, yt, yb, w, h, ws;
var xlu = Number.MAX_VALUE, xru = 0, ytu = Number.MAX_VALUE, ybu = 0;
var lists = highlightedElementLists;
var svgRootChildren = getSvgRootChildren();
for ( var i = 0; i < lists.length; i++ ) {
elems = lists[i];
@ -857,7 +869,7 @@ var highlightElements = function(scrollTo) {
if ( yt < ytu ) { ytu = yt; }
if ( yb > ybu ) { ybu = yb; }
}
svgRoot.children[i+1].setAttribute('d', islands.join('') || 'M0 0');
svgRootChildren[i+1].setAttribute('d', islands.join('') || 'M0 0');
}
svgRoot.firstElementChild.setAttribute('d', ocean.join(''));