2012-04-04 4 views
0

Ich verwende ein Bookmarklet, mit dem ich die aktuelle URL auf Google Plus teilen kann.Wie kann ich die Google+ Aufgabe "Freigabe abgeschlossen" in Javascript erkennen und Chrome Bookmarklet schließen?

Hier ist das JavaScript:

javascript:(function(){var w=480;var h=380;var x=Number((window.screen.width-w)/2); 
var y=Number((window.screen.height-h)/2); 
window.open('https://plusone.google.com/_/+1/confirm?hl=en&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title),'','width='+w+',height='+h+',left='+x+',top='+y+',scrollbars=no');})(); 

Gibt es eine Möglichkeit, die "Freigabe erfolgreich" Ereignis zu erfassen und ein window.close() aufrufen? Und wo nenne ich es in diesem JS? Sogar ein Zeiger in dieser Richtung wird geschätzt :) Danke!

+0

Ich habe versucht, den Code für die G + -Taste in SO (unter dem Favoriten-Stern), die diese * genaue * Funktionalität hat. Aber ich bin nur soweit gekommen, dass das Anklicken der Funktion einen Aufruf der JS-Funktion 'd()' mit der G + Share-URL als Parameter bewirkt - und was die Funktion genau macht, kann ich nicht sehen, weil der Code minimiert ist. –

Antwort

1

Gibt es eine Möglichkeit, das Ereignis "Freigabe erfolgreich" zu erkennen und ein window.close() aufzurufen?

Nein, Sie können nicht.

Browser-Sicherheit verhindert, dass Sie Javascript auf einer Seite verwenden, um mit einer anderen Seite in einer anderen Domäne zu interagieren. Aus diesem Grund kann ich keine Website einrichten, die die Website Ihrer Bank in einem Iframe öffnet und dann kontrolliert.

Das Javascript in einem Bookmarklet wird als Teil der Seite betrachtet, die geöffnet wird, wenn Sie es ausführen. Der Code wird also Teil der Seite, die Sie zu Google Plus hinzufügen, und er kann nicht mit der Seite von Google interagieren, da er sich auf einer anderen Domain befindet. und umgekehrt. Der Code kann das Fenster öffnen, aber das ist alles.

Um zu tun, was Sie wollen, müssten Sie ein Add-on, eine Erweiterung oder ein Benutzerskript erstellen.

+0

Wow, danke für die informative Antwort, ich habe 3 neue Dinge daraus gelernt/wiederentdeckt! –