Получение значка вкладки с расширением chrome и отправка его в Flask [JS] [Python]

#javascript #python #ajax #python-requests

Вопрос:

Я пытаюсь захватить значок текущей вкладки с помощью API Chrome и отправить его с помощью запроса:

 function sendRequest(update, tab){
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 amp;amp; this.status == 200) {
            console.log(this.responseText);
        }
    };

    icon = "";
    url = "";

    if (tab.status == 'complete')
        icon = tab.favIconUrl;
        url = tab.url;
    
    formD = new FormData();
    formD.append("url", url);
    formD.append("ic_link", icon);
    
    xhttp.open("POST", "Python_server####/send_url");
    xhttp.send(formD);
}
 

Однако URL-адрес избранного всегда либо пуст, либо не определен. Я также попытался получить доступ к ссылке напрямую, document.getElementById("shortcut icon").href но я не уверен, законно ли это. Есть какие-нибудь идеи?

Ответ №1:

свойство tab.favIconUrl доступно только в том случае, если расширение имеет разрешение вкладки или активной вкладки. Также это пустая строка «» , если вкладка находится в состоянии загрузки

Комментарии:

1. У моего расширения есть разрешения «вкладки» и «Активная вкладка». Как бы я проверил, находится ли вкладка в состоянии загрузки?

2. @Tippitytopkek вы можете добавить разрешения для своего расширения. Чтобы проверить статус загрузки вкладок, вы можете использовать прослушиватель событий chrome.tabs.onUpdated.