html、JavaScript、JSONでの一重引用符の使用とネスト

3020 ワード

HTMLとJS
一般的なHTMLの習慣は、属性に二重引用符を使うことです.ではjsやphpでHTML stringを使うと、こうなります.
 
     
// js
var str = '
';

あるページのボタンにonclickイベントの処理コードを書き、うっかり次のように書きました.

IEがエラーを提示した後、うっかりして次のように変更します.

結果はやはり間違っていた.
この時、私は理解できませんでした.最も直接的な解決方法はこのように書かれていることを知っていますが.
しかし、なぜjavascriptのエスケープ文字が効果的ではないのでしょうか.
その後、通常のコードが見つかりました.この場合、HTMLの管轄範囲にあることが理解されます.したがって、javascriptではなく、エスケープ文字はHTMLを使用するべきです.
「この方法はjavascriptです.HTMLの場合は、」を使用します.また、「,」を使用することもできます.
以下に、さまざまな表現方法を示します.(クリックしてリンクを開く)
外二重引用符内二重引用符-エラー「type=」buttonοnclick="alert("OK");"/>二重引用符-エラー「type=」button」οnclick="alert(\"OK\");"/>その他\-エラー「type=」button」οnclick="alert(\\"OK\\");"/>その他&#3 4;-エラー「type="button"οnclick="alert(\"OK\");"/> 外二重引用符内一重引用符-OK"type="button"οnclick="alert('OK');"/>
外単引用符内単引用符-エラー「type=」buttonοnclick='alert('OK');'/> 外単引用符内二重引用符-OK"type="button"οnclick='alert("OK");'/> 一重引用符-エラー「type=」button」οnclick="alert(\'OK\');"/>
2つの二重引用符-エラー「type=」button」οnclick="alert(""OK"");"/> 2つの引用符-エラー「type=」button」οnclick="alert(''OK'');"/> 外部は引用符-OK"type="button"を使用しませんοnclick=alert('OK');alert("OK");/>
エスケープ文字
"(& # 3 4;)-OK"type="button"οnclick="alert("OK");"/>
エスケープ文字
'(& # 3 9;)-OK"type="button"οnclick="alert('OK');"/>
エスケープ文字
"(& # x 2 2;)-OK"type="button"οnclick="alert('OK');"/>
エスケープ文字
'(& # x 2 7;)-OK"type="button"οnclick="alert('OK');"/>
エスケープ文字
"(& q uo t ;)-OK"type="button"οnclick="alert("OK");"/>
エスケープ文字
'(& a po s ;)-IE
エラー
"type="button"οnclick="alert('OK');"/>
JSON
JSONのキー値ペア、JSONは2つの原則に従う必要があります:(多くの言語では二重引用符のフォーマットしか解析できないため、インタフェースの汎用性のためにkeyとvalueを囲むために二重引用符を使用する必要があります)
  • 文字列は二重引用符を使用する必要があります.文字列の字面量は'str'のように無効です.
  • 属性キーも二重引用符を使用する必要があります.

  • JSON.parse(text,reviveer?)すなわち、テキスト形式のJSONデータは、対応する値を返し、二重引用符の文字列を一重引用符で囲む必要がある.以下>先頭は入力、下yihang
    >JSON.parse("'String'")
    SyntaxError:Unexpected token ILLEGAL
    >JSON.parse('"String"')
    'String'
    >JSON.parse('{"hello":123,"world":456}')
    {hello:123,world:456}
    >JSON.parse('{"hello":"123","world":"456"}')
    {hello:"123",world:"456"}