2009-03-20 17 views
7

Próbuję utworzyć skryptozakładkę, która po kliknięciu zażądałaby pewnych informacji od użytkownika (adresu URL i kilku innych pól w tym przypadku), a następnie wysłania tych danych do strony php na moim serwerze a następnie wyświetlić wynik.Połączenie Ajax z Bookmarklet

Chciałbym wykonać wezwanie Ajax, aby tak naprawdę nie przekierować na nową stronę, wystarczy pobrać dane, ale zakładam, że wpadłbym na ograniczenie Ajax ... Czy istnieje jakiś znany sposób na zrobienie tego samego?

Jaki byłby najlepszy sposób przekazywania parametrów? Mam już mechanizm do odbierania parametrów jako wiadomość pocztową od formularza ... Czy jest jakiś sposób, aby ponownie użyć tego?

Odpowiedz

6

Możesz ustawić skryptozakładkę, tworząc zakładkę i dodając ten fragment kodu w miejscu, ale zgodnie z same origin policy limitation, będzie to działać tylko wtedy, gdy bieżąca karta jest w tej samej lokalizacji, tutaj www.google.com.

Jeśli dobrze rozumiem Twoje potrzeby, to powinno być w porządku dla Twojego problemu.

var request = new XMLHttpRequest(); 
request.open("GET", "http://www.google.com", true); 
request.onreadystatechange = function() { 
    var done = 4, ok = 200; 
    if (request.readyState == done && request.status == ok) { 
    if (request.responseText) { 
     alert(request.responseText); 
    } 
    } 
}; 
request.send(null); 

Nie wiem, czy test POST byłby skuteczny.

1

Nie będziesz w stanie wykonać postu, ale GET zadziała poprawnie. Jeśli używasz czegoś takiego jak jQuery, po prostu utworzysz znacznik skryptu z adresem URL src, który wyśle ​​dane, które chcesz przesłać.

Będziesz musiał zwrócić dane stylu JSON.

Patrz: http://docs.jquery.com/Ajax/jQuery.getJSON

Alternatywnie, może stworzyć swoją bookmarklet iframe na stronie i że może pan pracować składania dane (można użyć słupek wtedy), jeśli nie chce komunikować się między iframe i samą stronę, ale zamiast tego po prostu używaj danych wprowadzanych przez użytkownika do przesłania.

Powiązane problemy