2013-06-28 41 views
0

我在HTML中使用JavaScript從幾個變量創建HREF鏈接。 第一個變量是Android文件路徑開始的固定文本(每次都是相同的),第二個變量是從XML屬性中獲取的文件名。 這一切都很好,但它只適用於構建鏈接,如果我沒有在XML文檔的文件名變量中有任何空格。 基本上發生的事情是,如果文件名變量包含空格,它只是構建聯繫起來,直到在文件名的第一個空間,因此一個例子是使用變量創建的Javascript/HTML HREF不適用於空格

**Correct link =** 
<a href="file:///sdcard/Clients/PB/example file name.pdf">example file name.pdf</a> 

**Link my code incorrectly returns =** 
<a href="file:///sdcard/Clients/PB/example">example file name.pdf</a> 

幫助將不勝感激。 謝謝!

<script> 
xmlDoc=loadXMLDoc("PBFileNames.xml"); 
x=xmlDoc.getElementsByTagName("file"); 

var path = "file:///sdcard/Clients/PB/"; //this will be constant between all iterations 

for (i=0;i<x.length;i++) 
{ 
var filename = x[i].getAttributeNode("name").nodeValue; //the nodefile is the filename 
{ 
document.write("<br>"); 
document.write("<a href=" + path + filename + ">" + filename + "</a>"); 
document.write("<br>"); 
} 

} 
</script> 
+0

用'%20'替換文件名中的空間,然後再試一次。 – 2013-06-28 23:04:55

回答

1

你必須逃離URI

document.write("<a href=" + path + encodeURI(filename)+ ">" + filename + "</a>"); 
+0

它是裏面有空格的uri的'filename'部分。 – Paulpro

+0

@Paulpro謝謝 – raam86

+0

非常感謝raam86,我在文件名上使用了encodeURI(),它工作的很完美。乾杯! – ladders81