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