编写一个javascript var="一些文本“;转换为预加载但为空的txt文档

write a javascript var="some text" into a pre loaded but empty txt document

本文关键字:转换 加载 文档 txt 文本 javascript 一个 var quot      更新时间:2023-09-26

我正在为我组装的音乐播放器创建一个动态播放列表。播放列表将位于一个外部.txt文档中。我将举一个例子。我有一个变量:

playlist="track_1"

页面上有一个按钮

<button onclick="add_track()">

在头中的脚本中

function add_track()
  {
  playlist=playlist+" track_2"
     ...What I need here is some way to put the playlist variable into a txt doc
  }

按钮将由php生成,以包括要添加到播放列表变量字符串中的曲目的名称。Document.write非常适合这个函数,因为它用变量的内容替换了所有内容;不幸的是,它替换了按钮所在的文档,而不是指定的外部文件。

您可以在文件中创建一个JSON对象并将其保存为file1.JSON

{ "playlist" : "track1" }

以及使用

$.getJSON("file1.json", function(data){
   var playlist=data.playlist+" track_2"
});

当然,只有当您阅读它时,这才有效,要写入.json文件,您应该使用PHP或任何您使用服务器端的东西

您不能用javascript在文件上写任何东西。您需要一个服务器端解决方案。

例如:您可以对php脚本进行ajax调用,该脚本在txt文件

中写入一些内容

您需要使用PHP来写入/追加到文件中。您可以使用jQuery.ajax()函数来调用PHP脚本来写入/附加到文件:

jQuery('#buttonId').live('click',function(event) {
    $.ajax({
        url: 'write-file.php',
        type: 'POST',
        dataType: 'json',
        data: { 
           playlist: "track_1"
        },
        success: function( data ) {
            for(var id in data) {
                alert( data[id] );
            }
        }
    });
    return false;
});

写入文件.php(类似于此)

$myFile = "testFile.txt";
$fh = fopen($myFile, 'a');
fwrite($fh, $_POST['playlist']);
fclose($fh);
// echo status here in json format

如果您想在客户端编写播放列表,可以使用html5文件系统api。http://www.html5rocks.com/en/tutorials/file/filesystem/

根据您实际想要做的事情,您可以打开一个带有data URI的新浏览器窗口,其中包含您的文本:

window.open('data:,' + encodeURIComponent(playlist));

用户只需保存文档即可。播放列表的大小受到允许的URI长度的限制。

以下是一个示例:http://jsfiddle.net/UjzsG/

感谢您的帮助,这是我第一次问一个愚蠢的问题,得到了一个非常好的答案。事实证明我有点胖,现在不需要PHP,但我稍后会保存播放列表。实现了制作动态播放列表,我可以将它所在的数组作为变量中的字符串,向字符串中添加曲目,然后在读取列表的每个函数中调用eval(播放列表)。

var playlist = 'var tracks = new Array("track_00","track_01"';
var end_bit = ');';
var playlist_full = playlist+end_bit;

然后添加

function AddTrack()
{
playlist=playlist+'"track_02"';
}

阅读

function ReadTrack()
{
playlist_full = playlist+end_bit;
eval(playlist_full)
document.getElementById("current_track").innerHTML=tracks[2];
}

再次为所有的建议欢呼。