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