2010-09-11 21 views
2

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

谢谢你们!

回答

5

直的Javascript有XMLHttpRequest,它执行后台,默认HTTP请求是异步的。

文档链接指向Mozilla's,尽管它与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开发人员中心提供了大量有关这方面的文档。

+0

太棒了!这很好用! – 2010-09-11 19:06:00

相关问题