javascript - 字符串中的标签会破坏 JavaScript

标签 javascript string hashtag

我正在尝试使用 JavaScript 将字符串保存到外部文件。以下是我正在执行的内容。

var mytext = "1111#1111"
var a = document.body.appendChild(document.createElement("a"));
a.download = "My_output.html"; 
a.href = "data:text/html," + mytext; 
a.click();

此代码在 Chrome 中完美运行。但是对于 Firefox,它会在“#”之前停止。当我查看生成的输出文件时,我看到以下内容:

Chrome 中的结果如下所示 1111#1111

Firefox 中的结果如下所示 1111

在我看来,主题标签破坏了某些东西。谁能帮我理解为什么字符串中的“#”在 Firefox 而不是 Chrome 中引起了悲伤?我试过用双引号和单引号将字符串括起来,但似乎没有任何效果。

有什么想法吗?

最佳答案

您需要在提交之前为您的字符串添加 URL 编码。

var mytext = encodeURIComponent( "1111#1111" );
var a = document.body.appendChild(document.createElement("a"));
a.download = "My_output.html"; 
a.href = "data:text/html," + mytext; 
a.click();

可在此处找到更多信息:encodeURIComponent

编辑:而且,这只是我顺便说一句,但你为什么还要做 data:text/html?只是似乎没有必要。

您可以通过 Ajax 轻松提交(或者使用 jQuery 的 $.ajax,如果您有可用的库)。如果您碰巧使用 jQuery,那么所有这一切可能会更容易一些。无论哪种方式,希望对您有所帮助。

关于javascript - 字符串中的标签会破坏 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31789651/

相关文章:

r - 读取数据时将 "#"视为常规字符

asp.net - Internet Explorer忽略URL中的标签

javascript - Angular.js - 使用服务需要回调

javascript - 使用 YouTube API 从带有 JSON 提要的视频中获取所有评论

javascript - Node.js 无法从 base64 解码解析 JSON 字符串

c++ - 字符串中子序列的长度

windows - 如何在批处理文件中组合数字和字符串

javascript - 删除排序数组中的重复项

javascript - 字符串操作,删除字符直到 Java 脚本中第二次出现

php - Facebook 标签提要 PHP cURL