Verhindert, dass Text in rt-Tags (furigana) ausgewählt wird

8

Ich verwende ruby ​​annotation, um furigana japanischen Text hinzuzufügen:

%Vor%

Wenn ich versuche, 漢字 auszuwählen und es in Safari oder Chrome zu kopieren, sieht die Zwischenablage wie folgt aus:

%Vor%

Ich kann das Wort auch nicht aus dem OS X-Wörterbuch nachschlagen.

Gibt es einen Weg, um zu verhindern, dass die Furigana ausgewählt wird? rt { -webkit-user-select: none; } scheint nicht zu funktionieren.

    
user495470 18.11.2012, 07:46
quelle

3 Antworten

4

Es scheint, dass wenn Sie sie in ein <ruby> -Element einfügen, wie folgt:

%Vor%

Dann ist es möglich, 漢字 ohne die ausgewählten Furiganas auszuwählen.

UPDATE:

Für kanji-kana gemischten Text wie 間 に 合 わ せ る können Sie entweder:

  1. Verwenden Sie das leere <rt> -Element wie folgt:

    %Vor%
  2. Schreibe etwas Javascript und nutze die Zwischenablage-Ereignisse * † :

    • HTML:

      %Vor%
    • Javascript:

      %Vor%

Hier ist eine Demoseite : Ссылка

* Getestet auf Safari 6.0.3
† Benötigt möglicherweise neuere Browserversionen
‡ Ich füge die Zeile von css code% co_de hinzu %, um zu verhindern, dass der Furigana-Text (optisch) ausgewählt wird

    
Rox Dorentus 30.03.2013, 13:13
quelle
3

Hier ist die Vanilla-Javascript-Art, es zu tun:

%Vor%

Wie oben erwähnt, wird das Hinzufügen von .replace(/\n/g, '') nach window.getSelection().toString() alle neuen Zeilen entfernen, die irgendwie noch herumhängen. .replace(' ', '') kann auch nützlich sein, wenn der Benutzer auch keine zusätzlichen Leerzeichen erhalten soll. Diese können für Ihren Anwendungsfall wünschenswert oder nicht wünschenswert sein.

    
jpc-ae 05.12.2015 23:55
quelle
0

Aufbauend auf der akzeptierten Antwort von Rox Dorentus (und in Bezug auf die hilfreiche Javascript-Konvertierung von jpc-ae), ist hier eine Verbesserung des Algorithmus, der nicht den display Stil der <rt> Elemente hackt, was sich fragil anfühlt zu mir.

Stattdessen erstellen wir ein Array von Referenzen auf alle Knoten in der Auswahl, filtern nach allen mit dem Tag <rb> und geben ihr innerText zurück. Ich biete auch eine auskommentierte Alternative an, falls keine <rb> -Tags zum Einschließen des Kanjis verwendet werden.

%Vor%     
Jamie Birch 18.03.2017 23:32
quelle

Tags und Links