Я начал программировать свое собственное расширение Chrome сегодня, и я часами застрял с одной проблемой.Прямо сейчас я отправляю текущий URL-адрес с открытого веб-сайта на мой сервер, где он проверяется на соответствие некоторым критериям, а затем возвращаемое значение отправляется обратно в расширение.Это работает до сих пор.Я использую только popup.html, без фоновой страницы.Запрос отправляется только тогда, когда пользователь нажимает на значок в браузере.Как я могу понять, что запрос автоматически отправляется при загрузке страницы?
Если существует конкретное возвращаемое значение с сервера, пользователю должно быть выдано досадное предупреждение.Оповещения и новые окна ... ну ... раздражают.Наилучшим способом должно быть небольшое всплывающее окно под значком расширения, но это невозможно без щелчка пользователя.Поэтому я подумал о маленьком слое в верхней части страницы.
<html>
<head>
<script>
window.addEventListener("load", sendRequest, false);
function sendRequest() {
var q = "test";
xmlHttp=new XMLHttpRequest();
xmlHttp.open('GET', 'http://www.testurl.com/check.php?q='+q, true);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
document.getElementById("textf").innerText = xmlHttp.responseText;
chrome.tabs.executeScript(null,{code:"<div style='position: absolute; top: 0; left: 0; background-color=blue;layer-background-color: blue;'><p>test </p><p>test2 </p></div>"});
}
}
xmlHttp.send(null);
}
</script>
</head>
<body>
//Just for the popup...
<font color="blue"><p id="textf">Checking...</p></font>
</body>
</html>
Если я сделаю
chrome.tabs.executeScript(null,{code:"alert('testalert')"});
, это предупредит меня.Однако, это не работает, и я не могу понять, почему: (
Нужна ли мне фоновая страница для всего этого, так как я хочу проверять URL только при загрузке страницы? Почему -вещь не работает, но предупреждение есть?
Заранее спасибо!