diff --git a/scripts/content.js b/scripts/content.js index 4845f8e..00f8e63 100644 --- a/scripts/content.js +++ b/scripts/content.js @@ -36,12 +36,23 @@ chrome.runtime.onMessage.addListener( ); function extractTabData(itemsSelector, fieldSelectors) { - return $(itemsSelector).toArray().map( - item => fieldSelectors.map( - selector => { - let [cls, attr] = selector.split('@').slice(0, 2); - return $(item).find(cls).toArray().map(find => attr ? find[attr] : find.textContent.trim()).join('\n') - } - ) + let fieldNotFound = false; + let results = $(itemsSelector).toArray().map( + item => { + return fieldSelectors.map( + selector => { + let [cls, attr] = selector.split('@').slice(0, 2); + // TODO: close tab to cancel task tip + if (fieldNotFound) return; + let fieldVals = $(item).find(cls).toArray(); + if (!fieldVals.length) { + fieldNotFound = true; + return; + } + return fieldVals.map(find => attr ? find[attr] : find.textContent.trim()).join('\n') + } + ) + } ); + return fieldNotFound ? [] : results } \ No newline at end of file