我从图像标记中获取src属性,并通过ajax调用将其发布到我的数据库,然后用于形成XML文件。我真的需要逃离这个图像路径,似乎对如何做到这一点感到非常难过。尝试使用encodeURIComponent没有太多运气。以下是我的代码。谢谢你的帮助!
$('.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>';
});
答案 0 :(得分:1)
您必须使用encodeURI。因为encodeURIComponent不适合完整路径。
尝试使用xml编码函数(encodeXml)清除放大器中的xml:
var xml_special_to_escaped_one_map = {
'&': '&',
'"': '"',
'<': '<',
'>': '>'
};
var escaped_one_to_xml_special_map = {
'&': '&',
'"': '"',
'<': '<',
'>': '>'
};
function encodeXml(string) {
return string.replace(/([\&"<>])/g, function(str, item) {
return xml_special_to_escaped_one_map[item];
});
};
function decodeXml(string) {
return string.replace(/("|<|>|&)/g,
function(str, item) {
return escaped_one_to_xml_special_map[item];
});
}
从这里开始:http://dracoblue.net/dev/encodedecode-special-xml-characters-in-javascript/155/
答案 1 :(得分:0)
很难说,因为它看起来对我很好。尝试复制,在我的浏览器中很好。
尝试更改javascript库(jquery?)并尝试其他浏览器。并尝试将字符串分解为变量以解决问题。