2

我在 javascript 方面相当糟糕,但这就是我想要的。我的服务器上有一个 PHP 脚本,当用户按下我的 Safari 扩展按钮时,我希望将请求(url)发送到我的服务器(www.myurl.com/directory/script.php?etc),但我没有t 真的想要一个新的窗口/标签打开来加载它。有没有办法在隐藏窗口中加载它并在完成后关闭它或类似的东西,无论是使用 Safari API 还是直接的 javascript?

多谢你们!

4

1 回答 1

5

直接 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 开发者中心有大量关于此的文档。

于 2010-09-11T04:56:37.240 回答