webextensions/src/scripts/contentscript.js

45 lines
1.2 KiB
JavaScript

import ext from "./utils/ext";
var extractTags = () => {
var url = document.location.href;
if(!url || !url.match(/^http/)) return;
var data = {
title: "",
description: "",
image: "",
url: document.location.href
};
var ogTitle = document.querySelector("meta[property='og:title']");
if(ogTitle) {
data.title = ogTitle.getAttribute("content")
} else {
data.title = document.title
}
var descriptionTag = document.querySelector("meta[property='og:description']") || document.querySelector("meta[name='description']");
if(descriptionTag) {
data.description = descriptionTag.getAttribute("content")
}
var imgTag = document.querySelector("meta[property='og:image']") || document.querySelector("meta[property='twitter-image']");
if(imgTag) {
data.image = imgTag.getAttribute("content")
} else {
imgTag = document.querySelector("link[rel=icon]") || document.querySelector("link[rel=apple-touch-icon]");
if (imgTag) {
data.image = imgTag.getAttribute("href");
}
}
return data;
};
function onRequest(request, sender, sendResponse) {
if (request.action === 'process-page') {
sendResponse(extractTags())
}
}
ext.runtime.onMessage.addListener(onRequest);