2010-10-12 49 views
0
function openFile(file, object) { 
    var extension = file.substr((file.lastIndexOf('.') +1)); 

    var fileName = file.substr((file.lastIndexOf('/') +1), (file.length - (file.lastIndexOf('/') +1))-4); 


    object.append('<img class="theimage" src="" alt="icon"/>'); 
    object.append('<span class="thefile"></span>'); 


    switch(extension) { 

     case 'ppt': 
      object.find('img').attr('src', 'PowerPoint-icon.png'); 
     break; 
     case 'pdf': 
      object.find('img').attr('src', 'pdficon_large.gif'); 
     break; 
     case 'txt': 
      object.find('img').attr('src', 'txt_icon.png'); 
     break; 
     default: 
      alert('error'); 
    } 

    object.find('span.thefile').text(fileName); 

}; 

該功能可以正常運行在它自己的,但是當我把它添加到我的學校的CMS模板將其添加20%在文件名的所有空間增加20%的空間。爲什麼在我的javascript變量

你認爲他們有自己的功能嗎?目的是什麼?爲了安全?

回答

2

%20是空格的標準URL編碼。無論處理空間的功能是什麼,都認爲它們需要被編碼以便在URL中使用。

至於爲什麼這樣做,它不完全是爲了安全。並不是所有的系統都能很好地處這有助於這些情況,所以它被認爲是URL安全的空間編碼(等等)。對於所有其他信息,請參閱RFC 3986 s2.1s2.4

+0

正則表達式會取出%20。我從URL路徑獲取鏈接名稱,所以這就是爲什麼我想擺脫它。 – Adam 2010-10-12 18:44:27

+0

你不需要正則表達式,你只需要URL解碼。有許多實現,例如http://www.webtoolkit.info/javascript-url-decode-encode.html。選一個你喜歡的,並使用它。 – Sorpigal 2010-10-13 10:53:52

相關問題