2009-03-20 8 views
7

Ich versuche, ein Bookmarklet zu erstellen, das nach dem Klicken einige Informationen vom Benutzer (eine URL und ein paar andere Felder in diesem Fall) anfordern würde und dann diese Daten an eine PHP-Seite auf meinem Server senden und dann das Ergebnis anzeigen.Ajax Anruf von Bookmarklet

Ich würde gerne einen Ajax-Aufruf für dieses tun, so dass ich nicht wirklich auf die neue Seite umleiten, nur die Daten erhalten, aber ich nehme an, ich würde in der "gleichen Ursprungsrichtlinie" Beschränkung von Ajax laufen ... Gibt es einen bekannten Weg, im Grunde dasselbe zu tun?

Auch, was wäre der beste Weg, um die Parameter zu übergeben? Ich habe bereits einen Mechanismus, um die Parameter als eine Post-Nachricht von einem Formular zu erhalten ... Gibt es eine Möglichkeit, die ich einfach wiederverwenden könnte?

Antwort

6

Sie können ein Bookmarklet erstellen, indem Sie ein Lesezeichen erstellen und den folgenden Code unten im Speicherort hinzufügen. Dies funktioniert jedoch gemäß same origin policy limitation nur, wenn sich die aktuelle Registerkarte an derselben Stelle befindet, hier www.google.com.

Wenn ich Ihre Bedürfnisse gut verstanden habe, sollte das für Ihr Problem in Ordnung sein.

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); 

Ich weiß nicht, ob POST funktionieren würde.

1

Sie werden nicht in der Lage sein, einen Beitrag zu tun, aber ein GET wird gut funktionieren. Wenn Sie etwas wie jQuery verwenden, wird einfach ein Skript-Tag mit einer src-URL erstellt, die die Daten sendet, die Sie übermitteln möchten.

Sie müssen JSON-Stildaten zurückgeben.

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

Alternativ Ihr Bookmarklet auf der Seite einen iframe schaffen könnte, und das könnte tun Sie arbeiten, um die Daten der Vorlage (Sie senden dann verwenden können), wenn Sie nicht zwischen die Kommunikation suchen iframe und die Seite selbst, sondern nur Benutzereingaben zum Senden verwenden.