48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
console.log("contentscript.js started!");
|
||
|
||
function extractUrlsAndFilenames() {
|
||
console.log("contentscript.js: this is extractFileUrlsAndNames()");
|
||
// get the correct frame
|
||
let frame = document.querySelector("iframe.js-mail-content");
|
||
|
||
// get all divs containing attachments
|
||
let divs = frame.contentWindow.document.body.querySelectorAll(
|
||
"div.samoware-mail-message__attach__item[attachment-ref]"
|
||
);
|
||
|
||
// loop over divs and extract attachment information
|
||
let urlsAndFilenames = [];
|
||
divs.forEach((div) => {
|
||
let url = div.getAttribute("attachment-ref");
|
||
let filename = div.getAttribute("file-name");
|
||
|
||
// if filename is null, derive it from url
|
||
if (!filename) {
|
||
let splitUrl = url.split("/");
|
||
filename = splitUrl[splitUrl.length - 1];
|
||
}
|
||
urlsAndFilenames.push({ url: url, filename: filename });
|
||
});
|
||
return urlsAndFilenames;
|
||
}
|
||
|
||
function clickPrintButton() {
|
||
let printElement = document.querySelector(
|
||
'li[ng-click="printMessage(selectedMessage)"]'
|
||
);
|
||
printElement.click();
|
||
}
|
||
|
||
const urlsAndFilenames = extractUrlsAndFilenames();
|
||
console.log(
|
||
`contentscript.js: URLs and filenames extracted -> ${JSON.stringify(
|
||
urlsAndFilenames
|
||
)}`
|
||
);
|
||
|
||
clickPrintButton();
|
||
console.log(`contentscript.js: clicked the print button`);
|
||
|
||
// this last statement is important – it's evaluation value is the return value for the background script
|
||
urlsAndFilenames;
|