2016-11-14 1 views
2

Ich möchte ein Bookmarklet erstellen, das ich in die Lesezeichen-Symbolleiste meines Browsers legen kann. Wenn Sie darauf klicken, wird ein fester, vordefinierter Text (in meinem Anwendungsfall ein Shruggie: ¯ \ _ (ツ) _/¯) eingefügt Cursorposition (unter der Annahme, dass sich der Cursor in einem editierbaren Eingabefeld oder Textbereich befindet). Ich bin jedoch ein Anfänger bei JavaScript und kann nicht herausfinden, wie ich damit anfangen soll. Irgendeine Hilfe? Wenn ich einen Zeiger in die richtige Richtung bekommen kann, kann ich es wahrscheinlich von dort herausfinden. Vielen Dank!Wie erstelle ich ein JS-Bookmarklet, um fixierten Text an der Cursorposition einzufügen?

+1

[Holen Sie sich das aktive Eingabeelement] (https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement). [Erhalte die Cursorposition im Inhalt dieses Elements] (http://stackoverflow.com/questions/2897155/get-cursor-position-in-characters-within-a-text-input-field). [Greifen Sie auf den Inhalt des Eingabefelds zu und ändern Sie ihn (http://www.w3schools.com/jsref/prop_text_value.asp). [Manipulieren Sie die Zeichenfolge, um den Text an der gewünschten Stelle einzufügen] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String). – afuous

+0

@afuous Das gab mir alles, was ich suchte. Nach dem Experimentieren in der Firefox-Konsole habe ich ein funktionierendes Bookmarklet in ungefähr zehn Minuten (einschließlich Ablenkungen) bekommen. Sehen Sie meine Antwort unten für das, was ich gefunden habe. – jcgoble3

+0

Schön, ich könnte das tatsächlich selbst benutzen. – afuous

Antwort

1

Apologies für die Verzögerung; Das Leben warf mir ein paar Kurvenkugeln zu, als ich die Frage gepostet hatte, und ich vergaß dies, bis StackOverflow mir heute Nacht die Antworten mitteilte.

Der Kommentar von afuous gab mir alles, was ich suchte, und ich habe jetzt ein funktionierendes Bookmarklet. Für alle anderen, die über diese kommt, hier ist es:

javascript:(function(a){a.value=a.value.slice(0,a.selectionStart)+"%C2%AF\\_(%E3%83%84)_/%C2%AF"+a.value.slice(a.selectionEnd);})(document.activeElement);

Dies den Vorteil, dass für mich hat einen Teil eines Textes auszuwählen und das Bookmarklet verwenden, um die Auswahl mit einem shruggie zu ersetzen, als ob Ich hatte eine hypothetische Shruggie-Taste auf der Tastatur gedrückt.

Fühlen Sie sich frei zu stehlen und zu modifizieren, wie Sie für richtig halten. Dies wurde nur in Firefox 50.0.2 getestet, aber ich denke, es sollte in allen modernen Browsern funktionieren. (Es funktioniert nicht in Internet Explorer 8 oder früher.)

0

CSS Tricks hat einen Artikel, der erklärt, wie man das macht und mehr. Ich bin mir bewusst, dass Link-Only-Antworten hier weniger als ideal sind, aber die Frage ist, dass man nach Zeigern in die richtige Richtung fragt, also glaube ich, dass es gut passt.

Das Bookmarklet aus dem Tutorial prefills Formulare, so im Wesentlichen werden Sie es ausnehmen wollen, aber zuerst sehen, wie es Formkontrollen findet und sie vorfüllt. Passen Sie dann die gewünschte Funktionalität an und rippen Sie schließlich alles aus, was Sie nicht benötigen oder verwenden.

Prefilling Forms Custom Bookmarklet

+1

Sieht nach vielen guten Informationen aus, aber es ist ein bisschen über meinen Kopf. Die Antwort, die ich unten gepostet habe, aufbauend auf dem Kommentar zu der obigen Frage, ist alles was ich brauche. Trotzdem danke. – jcgoble3

Verwandte Themen