extractTabData report [] if any field element not found
This commit is contained in:
		| @ -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 | ||||
| } | ||||
		Reference in New Issue
	
	Block a user