2010-09-11 20 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

相關問題