使用变量创建的Javascript / HTML HREF不适用于空间

时间:2013-06-28 23:00:24

标签: javascript html regex uri space

我在HTML中使用JavaScript从几个变量创建HREF链接。 第一个变量是Android文件路径开始的固定文本(每次都相同),第二个变量是从XML属性中获取的文件名。 这一切都很好,但是如果我在XML文档的文件名变量中没有任何空格,它只能正确构建链接。 基本上发生的事情是,如果文件名变量包含空格,它只构造链接,直到文件名中的第一个空格,所以一个例子是

**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>

1 个答案:

答案 0 :(得分:1)

您必须转义URI

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