【问题标题】:Javascript/HTML HREF created with Variables Doesnt Work with Spaces使用变量创建的 Javascript/HTML HREF 不适用于空格
【发布时间】:2013-06-28 23:00:24
【问题描述】:

我在 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>

【问题讨论】:

  • 将文件名中的空格替换为%20,然后重试。

标签: javascript html regex uri space


【解决方案1】:

你必须转义 URI

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

【讨论】:

  • 这是 uri 的 filename 部分,其中包含空格。
  • 非常感谢 raam86,我在文件名上使用了 encodeURI(),效果很好。干杯!
  • 嗨,我知道你是新来的。如果您认为某个答案解决了问题,请单击绿色复选标记将其标记为“已接受”。这有助于将重点放在仍然没有答案的旧 SO 上。”
猜你喜欢
  • 2012-04-19
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-09
相关资源
最近更新 更多