2011-07-25 8 views
3

イメージタグからsrc属性を取得し、XMLファイルを作成するために使用されるajax呼び出しを使用してそれをデータベースにポストします。私は本当にこのイメージのパスから脱出する必要があり、これを行う方法についてはかなり困惑しているようです。多くの運を必要とせずにencodeURIComponentを使用しようとしています。以下は私のコードです。助けてくれてありがとう!ajax経由でデータベースに投稿中にURIをエスケープしようとしています。私は間違って何をしていますか?

$('.drag-elem').each(function() { 
    var xml = '<clother><id>' + $(this).children('img').attr('class') + 
     '</id><title>' + $(this).children('img').attr('alt') + '</title><z-index>' + 
     $(this).css('z-index') + '</z-index><top>' + $(this).css('top') + 
     '</top><left>' + $(this).css('left') + '</left><file>' + 
     encodeURIComponent($(this).children('img').attr('src')) + 
     '</file></clother>'; 
}); 
+1

出力はどのようなものが見えますか? – Joe

+0

出力はこれになります。あなたはノードから見ることができるようにIMGのURLはフレンドリー非常にXMLではありません 'の<?xml version = "1.0"?> 製品-5316 アンバータイガーシェード 355px 113px http://www.domain.com/images/thumb/phpThumb.php?src=http://www.domain.com/uploads/products/712SP_GLD.jpg&w=95&h=98&q = 90&far = C&bg = FFFFFF

+0

出力はどこから来ますか? PHPまたはJS? – Dor

答えて

0

私にとっては良いと思われるので、難しいと言えます。私のブラウザで再現しようとしました。

javascriptライブラリ(jquery?)を変更して別のブラウザをお試しください。文字列を変数に分割して問題を解決してみてください。

1

encodeURIを使用する必要があります。 encodeURIComponentは完全なパスには適していないためです。ここから

var xml_special_to_escaped_one_map = { 
'&': '&amp;', 
'"': '&quot;', 
'<': '&lt;', 
'>': '&gt;' 
}; 

var escaped_one_to_xml_special_map = { 
'&amp;': '&', 
'&quot;': '"', 
'&lt;': '<', 
'&gt;': '>' 
}; 

function encodeXml(string) { 
return string.replace(/([\&"<>])/g, function(str, item) { 
return xml_special_to_escaped_one_map[item]; 
}); 
}; 

function decodeXml(string) { 
return string.replace(/(&quot;|&lt;|&gt;|&amp;)/g, 
function(str, item) { 
return escaped_one_to_xml_special_map[item]; 
}); 
} 


アンペアからあなたのxmlをクリアしたxmlエンコード機能(encodeXml)を使用しようとするにhttp://dracoblue.net/dev/encodedecode-special-xml-characters-in-javascript/155/

+0

私はencodeURIを使ってこれを試してみました。ヒットはアンパサンド&。その後は何も掲載されません。 –

関連する問題