エスケープされたJavaScript文字列のデコードに奇妙な問題があります。データ属性から文字列をデコードしないdecodeURIComponent
これはテストコードです。データ属性からエスケープされた文字列を取得しても機能しません。 2番目の例は正常に動作します。
var emailText = $('#emaildata').data('email-text');
var unescapedEmailText = decodeURIComponent(emailText);
alert(unescapedEmailText);
var emailText2 = "Blah blah edit blah foo\x27\x0a\x0a\x0a\x27\x27\x27";
var unescapedEmailText2 = decodeURIComponent(emailText2);
alert(unescapedEmailText2);
はここで壊れた機能を示すjsfiddleです。 http://jsfiddle.net/wnegH/2/
は、私は私が愚かな何かをやっていると確信している、しかし、あなたはdata-email-text
属性の内側に置くことはjavascriptの文字列ではありません
decodeURIComponentは赤ちゃんです。渡すデータは違っています:http://jsfiddle.net/wnegH/4/ – Douglas
$( '#emaildata')。data( 'email-text ')はデコードする前にエンコードされていましたか? – Chibuzo