From 0dc5c62b1e8a778680b178ade584e3e6113c8bb6 Mon Sep 17 00:00:00 2001 From: gorhill Date: Mon, 16 Feb 2015 11:14:37 -0500 Subject: [PATCH] this fixes #815 --- src/js/element-picker.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/js/element-picker.js b/src/js/element-picker.js index db763964e..07ac090bb 100644 --- a/src/js/element-picker.js +++ b/src/js/element-picker.js @@ -158,6 +158,18 @@ try { /******************************************************************************/ +var safeQuerySelectorAll = function(node, selector) { + var nodeList; + try { + nodeList = node.querySelectorAll(selector); + } catch (e) { + nodeList = []; + } + return nodeList; +}; + +/******************************************************************************/ + var pausePicker = function() { dialog.parentNode.classList.add('paused'); svgListening(false); @@ -354,7 +366,7 @@ var cosmeticFilterFromElement = function(elem, out) { // `nth-of-type`. It is preferable to use `nth-of-type` as opposed to // `nth-child`, as `nth-of-type` is less volatile. var parentNode = elem.parentNode; - if ( parentNode !== null && parentNode.querySelectorAll(cssScope + selector).length > 1 ) { + if ( parentNode !== null && safeQuerySelectorAll(parentNode, cssScope + selector).length > 1 ) { i = 1; while ( elem.previousSibling !== null ) { elem = elem.previousSibling;