JavaScriptでは、一般的な方法は、ecodeuri(decodeuri)とecodeuricoponent(decodeuricoponent)を使用することです。特定の使用方法と違いが使用されます。
しかし、JavaScriptでHTMLを逆に逃れるにはどうすればよいですか?たとえば、次のコード:
var jsondata = {title: "<%= data.name?data.name:title%>"、desc: "<%= data.content?data.content: ''%>"、image: "<%data.img?data.img: ''%>"};<%=%>にラップされた部品は、サーバーから返された値です(上記の例のコードは、node.jsのExpress EJSテンプレートのコードから取得されます)。サーバーから返された文字列に、単一の引用符や二重引用符などの引用符が含まれている場合、上記のJSコードには、ブラウザで解釈するときにエラーが発生します。この問題を解決する方法は?
基本的なアイデアは、ページ上のDOM要素の内側HTML属性を介して文字列HTMLを反転させ、値をJavaScript変数に返すことです。次の2つのコードを見てください。
1。ネイティブJavaScriptの作成方法:
function htmldecode(input){var e = document.createelement( 'div'); e.innerhtml = input; e.childnodes.length === 0を返しますか? "":E.ChildNodes [0] .Nodevalue;} htmldecode( "<img src = 'myimage.jpg'>");2。JQUERY執筆方法:
function htmldecode(value){return $( '<div/>')。html(value).text(); }最初の関数は、ネイティブJavaScriptメソッドを使用してDIV要素を作成し、そのinentmlプロパティに逆に逃げる必要がある文字列を割り当て、最後にdiv要素のnodevalueプロパティの値を返します。 2番目の関数はjQueryの方法を使用し、その基本原理は最初の関数と同じです。 Div要素はメモリでのみ作成され、ページに追加または不活性ではないため、既存のページに影響を与えません。
最後に、初期コードを次の方法に変更します。
var jsondata = {title:$( '<div/>')。html( "<%= data.name?name:title%>")。text()、desc:$( '<div/>')。 %> "};これにより、JavaScriptのサーバーによって返される文字列のHTML反転が可能になります。
JavaScriptにおけるHTMLの逆脱出の上記の詳細な説明は、私があなたと共有するすべてのコンテンツです。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。