Frage

Ich habe ein Problem damit, den einzelnen und doppelten Zitaten im Inneren zu entkommen hrefS JavaScript -Funktion.

Ich habe diesen JavaScript -Code im Inneren href. Es ist wie -

<a href = "javascript:myFunc("fileDir/fileName.doc", true)"> click this </a>

Da doppelte Zitate innerhalb des Doppelzitats nicht gültig sind, muss ich den inneren Doppelzitaten entkommen, damit es als Teil der Zeichenfolge behandelt werden kann - also muss ich das tun -

<a href = "javascript:myFunc(\"fileDir/fileName.doc\" , true)"> click this </a>

Das Problem ist, dass selbst der obige Code nicht funktioniert. Der JavaScript -Code wird bei -abgeschnitten - myFunc(

Ich habe es auch mit der einzelnen Zitatvariation versucht - aber selbst das scheint nicht zu funktionieren (was bedeutet, dass der Code, wenn ich ein einzelnes Zitat in meinem String -Literal habe, verkürzt wird).

Das habe ich mit einem einzigen Zitat gemacht:

<a href = 'javascript:myFunc("fileDir/fileName.doc" , true)'> click this </a>

Dies funktioniert, aber wenn ich ein einzelnes Zitat in der Zeichenfolge habe, wird der Code genauso abgeschnitten wie das von Double Quotes One.

War es hilfreich?

Lösung

Die Verwendung von Backslashes, um Zitate zu entkommen, ist, wie es in JavaScript funktioniert, aber Sie schreiben dort nicht JavaScript -Code: Sie schreiben HTML. Sie können dies tun, indem Sie die HTML -Fluchtmethode verwenden: Zeicheneinheiten.

&quot;  // "
&#39;   // '

Zum Beispiel:

<a href="javascript: alert('John O&#39;Brien says &quot;Hi!&quot');">...</a>

Andere Tipps

Verwenden Sie als allgemeine Best Practice Doppelquoten in HTML und Single-Quotes in JavaScript. Das wird die meisten Ihrer Probleme lösen. Wenn Sie in einer JavaScript -Zeichenfolge einen Einzelquote benötigen, können Sie ihm einfach mit 'entkommen - und Sie sollten wahrscheinlich keine tieferen Zapfen nisten.

Wie an anderer Stelle erwähnt, sind HTML -Entitäten eine Möglichkeit, wenn der Code in HTML eingebettet ist. Sie müssen sich jedoch immer noch mit entkommenen Zitaten in Saiten in Ihren JavaScript -Quelldateien befassen. Es ist daher am besten, nur eine konsistente Strategie für den Umgang mit JavaScript zu haben.

Wenn Sie dieser Strategie verfolgen und am Ende ein doppelter Queots in Ihrem JavaScript in Ihrem HTML eingebettet sind, verwenden Sie einfach die HTML-Entität.

Falls jemand etwas entkommen muss:

<a href="www.google.com/search?q="how+to+escape+quotes+in+href""</a>

Sie können ASCII -Code für Doppelzitate verwenden %22:

<a href="www.google.com/search?q=%22how+to+escape+quotes+in+href%22"</a>

Es ist besonders nützlich, wenn Sie den Link an JavaScript von PHP übergeben

Normalerweise funktioniert diese Art von Code ohne Probleme:

<a href="#" onclick="myFunc('...')">Click this</a>

Haben Sie mit diesem Code ein Problem?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top