encodeURI mit "solchen" und 'solchen' Zeichenkette

  • Hallo allerseits!

    Ich würde gerne für den Tooltipp - Titel eines Links beliebige Zeichenketten verwenden.

    (Konkret: Bei dieser InfoLister Firefox Seite sollen die Erweiterungsbeschreibungen als Titel verwendet werden, siehe mouseover Erweiterungsname.*)

    Problem:
    In diesen Zeichenketten (Erweiterungsbeschreibungen) können auch die Zeichen " und ' vorkommen.

    Code
    title="Super Erweiterung, die "jeder" braucht"


    geht dann natürlich nicht.

    Daher wäre es praktisch, die Bezeichnung erst mal per encodeURI zu kodieren:
    Das geht dann z.B. mit dem Javascript Aufruf

    Code
    encodeURI('Super Erweiterung, die "jeder" braucht');

    Problem:
    Jetzt gibt es aber noch 'ne Zeichenkette mit '
    z.B. Is' egal was diese Ereiterung macht
    dann geht

    Code
    encodeURI('Is' egal was diese Ereiterung macht');

    natürlich nicht, wenn schon, dann

    Code
    encodeURI("Is' egal was diese Ereiterung macht");

    Der Scriptaufruf muss aber natürlich, da die Zeichenkette ein Variable ist, immer gleich sein.

    Hat jemand also eine Idee, wie man selbst Zeichenketten in denen " und ' vorkommt kodieren kann?

    Danke und Gruß,
    Bazon


    *Bisher löste ich das Problem so, dass ich die Erweiterungsbeschreibung in der install.rdf veränderte. Geknaubt also und nur bis zum nächsten update haltbar. :wink:
    Ist auch eigentlich nicht soo furchtbar wichtig, im schlimmsten Fall werden unvollständige Titel angezeigt und die Seite ist nicht mehr W3C kompatibel.
    Ich wüßte aber trotzdem gerne, wie es geht...:wink:

  • Zitat von Dr. Evil

    einzige Möglichkeit, die mir einfällt: ein Tag neben dem Link hinzufügen, dass die Beschreibung enthält und per CSS ausgeblendet wird. Mit JavaScript dann diesen Tag (next/previousSibling) suchen und den Inhalt darin (textContent) ins titel-Attribut schreiben

    Ui, das klingt für meine Verhältnisse schon ziemlich aufwendig. (Ich muss mir dann noch aneignen: Wie fügt man einen Tag hinzu, wie suche ich diesen Tag und wie schreibe ich ihn ins title Attribut. Einzig das Ausblenden per CSS bekäme ich auf Anhieb hin...:wink:)
    Wo wird denn das Problem dann überhaupt gelöst? Ist es am Ende nicht immer noch eine Zeichenkette mit " und '? :-??

    Danke und Gruß,
    Bazon

  • Man könnte auch auf title verzichten und die Tooltips mit reinem CSS (ohne Javascript) realisieren. Das title-Attribut ist ja nicht so optimal, da lange Beschreibungen abgeschnitten werden.

    Also eine Klasse wie (hier für Links):

    Und im HTML-Code dann:

    Code
    Mit <a href="#" class="info">Blindheit<span>Unter Blindheit versteht man den Verlust der Sehf&auml;higkeit</a> per Definition geschlagen,
  • Zitat von Mithrandir
    Code
    Mit <a href="#" class="info">Blindheit<span>Unter Blindheit versteht man den Verlust der Sehf&auml;higkeit</a> per Definition geschlagen,

    :lol:
    Cool, das habe ich schon mal exemplarisch hinbekommen... :D Danke!

    (wird jetzt noch richtig ins Template eingebaut..)

    Ist aber echt eine Lücke in der Sprache wenn sich dieser 'fieser' "Satz" nicht kodieren käßt....

    Zitat von JonHa

    Kann man " nicht einfach durch " ersetzen und dann den Titel in normale doppelte Anführungszeichen setzen?

    Wenn Du das eine beleibige Variable anwenden kannst, schon. (Ich weiß zumindest nicht, wie, daher die Frage...)
    Im Template steht nämlich nicht diese Zeichenkette, sondern einfach nur title="Homepage von %name% - %description%", erst InfoLister macht daraus eine richtige Zeichenkette und ersetzt die %..% Ausdrücke...

    Gruß,
    Bazon

  • Zitat

    Ist aber echt eine Lücke in der Sprache wenn sich dieser 'fieser' "Satz" nicht kodieren käßt....


    Ja, ist nicht gerade toll. Aber wenn du (bzw. ihr) sowieso an InfoLister rumschraubt, dann ließe sich das bestimmt noch mit einer Replace-Aktion (eine Replace-Funktion sollte es in Javascript geben) verbinden.

  • Zitat von Mithrandir


    Ja, ist nicht gerade toll. Aber wenn du (bzw. ihr) sowieso an InfoLister rumschraubt, dann ließe sich das bestimmt noch mit einer Replace-Aktion (eine Replace-Funktion sollte es in Javascript geben) verbinden.

    Daran dachte ich auch schon.
    Die Frage ist nur:
    Ist das gewollt?
    Könnte ja vielleicht störend sein, manchmal sowas zu lesen:
    K%C3%B6nnte%20ja%20vielleicht%20st%C3%B6rend%20sein,%20manchmal%20sowas%20zu%20lesen:

    Gruß,
    Bazon