Расширение Chrome - создание javascript XMLHttpRequest для функции, которая вызывается при «onclick» - PullRequest
1 голос
/ 14 февраля 2011

У меня следующий вопрос: Я пытаюсь написать код JavaScript для расширения Chrome, которое использует контекстные меню.

var id = chrome.contextMenus.create({"title": "search Flickr", "contexts":"selection","onclick":searchSelection});

function searchSelection(info,tab){
var xhReq = new XMLHttpRequest();
 xhReq.open("GET", "sumGet.phtml?figure1=5&figure2=10", false);
 xhReq.send(null);
 var serverResponse = xhReq.responseText;
 alert(serverResponse); // Shows "15"

}

как видите, я пытаюсь создать http-запрос для этой функции. по какой-то причине это не работает. что случилось? Спасибо, Mary

1 Ответ

1 голос
/ 14 февраля 2011

Всегда лучше использовать асинхронный XMLHttpRequest, синхронный вызов заблокирует браузер, что может привести к ухудшению работы пользователя.

При асинхронном запросе вам придется использовать обработчик обратного вызова, потому что без него вы не сможете получить responseText. Это работает, когда вы делаете что-то вроде этого:

function searchSelection(info,tab){
    var xhReq = new XMLHttpRequest();
    xhReq.open("GET", "sumGet.phtml?figure1=5&figure2=10", true);
    xhReq.onreadystatechange = function () {
        if (xhReq.readyState == 4) {
            if (xhReq.status == 200) {
                var serverResponse = xhReq.responseText;
                alert(serverResponse); // Shows "15"
            }
        }
    };
    xhReq.send();
}
...