Расширение Safari 5 для загрузки URL без открытия окна - PullRequest
2 голосов
/ 11 сентября 2010

Я довольно плохо разбираюсь в javascript, но вот что я хочу. У меня есть скрипт PHP на моем сервере, и когда пользователь нажимает кнопку расширения Safari, я хочу отправить запрос (URL) на мой сервер (www.myurl.com/directory/script.php?etc), но я не действительно не хочется открывать новое окно / вкладку, чтобы загрузить его. Есть ли способ загрузить его в скрытое окно и закрыть, когда это будет сделано, или что-то в этом роде, с помощью API Safari или прямого JavaScript?

Спасибо, ребята!

1 Ответ

5 голосов
/ 11 сентября 2010

Прямой Javascript имеет XMLHttpRequest , который выполняет фоновый асинхронный по умолчанию HTTP-запрос.

Ссылка на документацию указывает на Mozilla, хотя она работает так же с Safari.

var request = new XMLHttpRequest();
request.open("GET", "http://www.example.com/mypage");
request.onreadystatechange = function()
{
    // "4" means "completed"
    if (request.readyState != 4) return;

    // do something with the response from the server
    alert(request.responseText);
}
request.send();

Расширения Safari не могут выполнять междоменные запросы из внедренного сценария.Например, если ваш пользователь заходит на google.com, вы не можете отправить запрос на example.com из введенного сценария, поскольку домены не совпадают.(На самом деле протоколы и порты тоже должны совпадать.)

Это означает, что вам понадобится ваша глобальная страница для выполнения запросов, а ваши внедренные скрипты должны будут передавать ей сообщения.В Центре разработчиков Safari имеется много документации по этому вопросу.

...