在JavaScript中保存或显示长字符串

时间:2014-04-04 20:11:23

标签: javascript string firefox

我正在使用Mozilla Firefox的控制台在博客上运行一些JavaScript,以便对其进行有组织的转储,并将其存储为字符串变量。该字符串包含大约5000条消息,因此它很长。我想以某种方式在计算机上保存这个字符串;这部分可以在外部使用JavaScript之外的方法完成。

可以想到以下选项:

  1. 将字符串另存为txt文件。
  2. 将字符串的内容保存到剪贴板,将其粘贴到记事本中,然后保存。
  3. 使用控制台的输出并从那里复制。
  4. 显示提醒,然后从那里复制。
  5. 创建一个新的HTML页面,将字符串作为正文并在新窗口中显示,然后从那里复制。
  6. 但是,我不知道如何在JavaScript中执行1和2,字符串对于选项3和4来说太长了(3我抱怨当我扩展它时字符串太大,4被截断),而我不知道怎么办5。

    有什么建议吗?提前谢谢。

3 个答案:

答案 0 :(得分:7)

您可以做的是使用新的HTML5"下载"标签的属性。如果将属性设置为文件名,则单击时,不会转到文件,而是使用文件名下载该文件。这有什么用?那么,你也可以使用'数据'方案。如果你有这个:

<a href="data:text/plain,This is an example message." download="example.txt">click to download</a>

它将导致文件下载。如果您使用JavaScript创建标记,请隐藏它,将href设置为&#34; data:text / plain,YourString&#34;,然后下载到&#34; blogDump.txt&#34;,然后使用单击方法,它会导致它下载。

编辑:示例!

var link = document.createElement('a');
link.setAttribute('href', 'data:text/plain,Example');
link.setAttribute('download', 'example.txt');
link.click();

编辑2:FireFox不喜欢被点击的DOM中没有的链接。第二个例子:

var link = document.createElement('a');
link.setAttribute('href', 'data:text/plain,Example');
link.setAttribute('download', 'example.txt');
document.getElementsByTagName("body")[0].appendChild(link).click();

答案 1 :(得分:7)

我不知道Firefox的控制台,但Chrome控制台公开了一个copy()方法,可以将任意大小的字符串放在剪贴板上

答案 2 :(得分:5)

  1. 您无法使用纯Javascript保存TXT文件。
  2. 您无法使用纯Javascript(仅限IE,或使用Flash hack)将字符串保存到剪贴板
  3. 你已经说过它太大了
  4. 同上3
  5. 它很容易像蛋糕:

    var newWindow = window.open("");
    var body = newWindow.document.body;
    var text = "innerText" in body ? "innerText" : "textContent";
    body[text] = "YOUR STRING GOES HERE";
    
  6. <强> FIDDLE EXAMPLE