Wie ein Formular in einem beliebigen Website der Seiten anzuzeigen ein Bookmarklet verwenden (wie Hinweis in Google Reader)?

StackOverflow https://stackoverflow.com/questions/67713

Frage

In Google Reader können Sie ein Bookmarklet verwenden, um „note“ eine Seite, die Sie gerade besuchen. Wenn Sie das Bookmarklet drücken, wird ein wenig Google-Formular oben auf der aktuellen Seite angezeigt. In der Form können Sie eine Beschreibung eingeben usw. Wenn Sie auf Senden drücken, macht die Form selbst ohne die Seite zu verlassen, und dann verschwindet die Form. Alles in allem eine sehr glatte Erfahrung.

Ich habe versucht offensichtlich einen Blick auf, wie es gemacht wird, aber die interessantesten Teile sind minimieren und nicht lesbar. So ...

Alle Ideen, wie so etwas zu implementieren (auf der Browser-Seite)? Welche Themen gibt es? Bestehende Blog-Beiträge beschreiben das?

War es hilfreich?

Lösung

Aupajo hat es richtig. Ich werde jedoch darauf Sie zu einem Bookmarklet Rahmen, den ich für unsere Seite aufgearbeitet (www.iminta.com).

Das Bookmarklet selbst lautet wie folgt:

javascript:void((function(){var%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('src','http://www.iminta.com/javascripts/new_bookmarklet.js?noCache='+new%20Date().getTime());document.body.appendChild(e)})())

Dies spritzt gerade ein neues Skript in das Dokument, das diese Datei enthält:

http://www.iminta.com/javascripts/new_bookmarklet.js

Es ist wichtig zu beachten, dass das Bookmarklet ein iframe erstellt, positioniert sie und fügt Ereignisse in das Dokument dem Benutzer zu ermöglichen Hit Flucht Dinge zu tun, wie (das Fenster zu schließen) oder blättern (also bleibt es sichtbar). Es verbirgt sich auch Elemente, die mit z-Positionierung (Flash, zum Beispiel) nicht gut spielen. Schließlich erleichtert auf die Javascript in Verbindung steht, die innerhalb des iframe läuft. Auf diese Weise können Sie eine Schaltfläche zum Schließen in der iframe, die das übergeordnete Dokument erzählt die iframe zu entfernen. Diese Art von Cross-Domain-Material ist ein wenig hacky, aber es ist der einzige Weg, (die ich gesehen habe), es zu tun.

Nicht für schwache Nerven; wenn man sich JavaScript nicht gut ist, vorbereiten zu kämpfen.

Andere Tipps

Bei sehr Grundstufe ist wird es createElement werden mit den Elementen zu schaffen in die Seite und appendChild oder insertBefore einzufügen sie in die Seite eingefügt werden soll.

Sie können ein einfaches Bookmarklet verwenden, um ein

scroll top