为什么会这样:
$("a").sortable( {
update:function() {
var urls = "";
$.map($("a"), function(elt) {
urls += "url=" + elt.href + "&";
});
$.ajax( {
url: 'server_side_process_one.aspx',
type: 'POST',
data: { urls.substr(0,urls.length - 1) },
success: function() { alert(urls.substr(0,urls.length - 1)); }
});
}
});
按以下格式返回路径:
文件:/// C:/Program%20Office/OFFICE11/WINWORD.EXE
但以下内容:
$("input:checkbox").live('change', function() {
var that = this;
$.ajax({
url: 'server_side_process_two.aspx',
type: 'POST',
data: { $(that).attr("id") },
success: function() { alert($(that).attr("id")); }
});
});
以下列格式返回路径:?
C:\ Program Files \ Microsoft 办公室\ OFFICE11 \ WINWORD.EXE
知道如何让两个函数以相同的格式返回吗?最好两者都应以基本格式返回,而不是所有额外的字符,即
C:\ Program Files \ Microsoft 办公室\ OFFICE11 \ WINWORD.EXE
但不是
文件:/// C:/Program%20Office/OFFICE11/WINWORD.EXE
答案 0 :(得分:1)
当您要求元素的href时,您将获得该属性的一个版本,由浏览器处理和清理。因此,它实际上取决于您的aspx脚本的功能,但请确保您通过strURLs
传递给脚本的URL是适当的URI,如file:///C:/Program%20Office/OFFICE11/WINWORD.EXE
,而不是错误的格式错误的网址,例如C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE
。
不要忘记,您可以使用Firefox中的FireBug等工具查看您发送到脚本的内容。
祝你好运!答案 1 :(得分:1)
这可能只是“修补”你的问题,但你可能只是让上面的C#函数
返回“file:/// C:/Program%20Office/OFFICE11/WINWORD.EXE”......然后纠正格式。
string sRtn = "file:///C:/Program%20Office/OFFICE11/WINWORD.EXE";
sRtn = sRtn.Replace("file:///", "");
sRtn = sRtn.Replace("/", "\");
sRtn = sRtn.Replace("%20", " ");