2013-06-28 39 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