所以我有一个文件管理器(如果你们中的任何人使用过它,类似于 HFS)......无论如何,当为各种文件操作提交 ajax 函数时,如果文件名中有撇号 ('),它就不起作用。它提交名称的整个部分,直到出现撇号为止。
通常提交一个ajax函数它只是运行类似
$.post("?mode=section&id=ajax.delete", {
filename: selectedFilesAsStr(),
});
这是javascript...
function selectedItems() { return $('#files .selector:checked') }
function selectedFilesAsStr() {
var a = [];
selectedItems().each(function(){
a.push(getItemName(this));
});
return a.join(":");
}
function getItemName(el) {
if (typeof el == 'undefined')
return false;
// we handle elements, not jquery sets
if (el.jquery)
if (el.size())
el = el[0];
else
return false;
// take the url, and ignore any #anchor part
var s = el.getAttribute('href') || el.getAttribute('value');
s = s.split('#')[0];
// remove protocol and hostname
var i = s.indexOf('://');
if (i > 0)
s = s.slice(s.indexOf('/',i+3));
// current folder is specified. Remove it.
if (s.indexOf(HFS.folder) == 0)
s = s.slice(HFS.folder.length);
// folders have a trailing slash that's not truly part of the name
if (s.slice(-1) == '/')
s = s.slice(0,-1);
// it is encoded
s = (decodeURIComponent || unescape)(s);
return s;
} // getItemName