将一个javascript函数的结果集成到另一个javascript函数中
我很难将这两个脚本集成到我的HTML页面中 首先,我有一个javascript,它将下拉框和文本框的结果编译成字符串文本。那很好 第二个javascript创建一个可以下载的txt文件(在多行数组中)。我想做的是获得将一个javascript函数的结果集成到另一个javascript函数中,javascript,html,function,Javascript,Html,Function,我很难将这两个脚本集成到我的HTML页面中 首先,我有一个javascript,它将下拉框和文本框的结果编译成字符串文本。那很好 第二个javascript创建一个可以下载的txt文件(在多行数组中)。我想做的是获得函数generate()中生成的字符串的结果,使其在javascript下载命令数组中显示为一行 仅供参考-我有所有这些在一个html文件,因为它的重量轻 提前感谢您的帮助 函数生成(){ var结果=“”; 结果+=document.getElementById('drop1')
函数generate()
中生成的字符串的结果,使其在javascript下载命令数组中显示为一行
仅供参考-我有所有这些在一个html文件,因为它的重量轻
提前感谢您的帮助
函数生成(){
var结果=“”;
结果+=document.getElementById('drop1')。值+'-';
结果+=document.getElementById('drop2')。值+'-';
结果+=document.getElementById('drop3')。值+'-';
结果+=document.getElementById('text1')。值+'-';
结果+=document.getElementById('text2')。值;
document.getElementById('output').innerHTML=result;
}
生成();
函数下载(文件名、文本){
var-element=document.createElement('a');
element.setAttribute('href','data:text/plain;charset=utf-8',+encodeURIComponent(text));
setAttribute('download',filename);
element.style.display='none';
document.body.appendChild(元素);
元素。单击();
document.body.removeChild(元素);
}
函数getLastUpdated(){
返回结果;
}
//开始文件下载。
document.getElementById(“dwn btn”).addEventListener('click',function()){
//生成包含一些内容的hello.txt文件的下载
变量文本=[
'相当长的英文文本字符串,一条错误消息',
getLastUpdated(),
“结束”
].join('\n');
var filename=“hello.txt”;
下载(文件名,text.replace(/\n/g,“\r\n”);//转换LF-ro-CRLF
},假)代码>
D1 S1
D1 S2
D2 S1
D2 S2
D3 S1
D3S2
您试图在中引用生成
函数的本地结果
变量,就好像它是一个全局变量,可以从内部获取最新更新的
一样。一个解决办法是使其全球化。有各种各样的原因可能是个坏主意。最好是让生成该文本的代码从generate
函数内部和生成下载文本的侦听器中可用。为此,我将getLastUpdate
更改为执行实际计算,然后从generate
内部和该侦听器调用它。重要的一点是return
语句。不返回任何内容的函数吓到我了!:微笑:
函数getLastUpdated(){
var结果=“”;
结果+=document.getElementById('drop1')。值+'-';
结果+=document.getElementById('drop2')。值+'-';
结果+=document.getElementById('drop3')。值+'-';
结果+=document.getElementById('text1')。值+'-';
结果+=document.getElementById('text2')。值;
返回结果;
}
函数生成(){
var result=getLastUpdated()
document.getElementById('output').innerHTML=result;
}
生成();
函数下载(文件名、文本){
var-element=document.createElement('a');
element.setAttribute('href','data:text/plain;charset=utf-8',+encodeURIComponent(text));
setAttribute('download',filename);
element.style.display='none';
document.body.appendChild(元素);
元素。单击();
document.body.removeChild(元素);
}
//开始文件下载。
document.getElementById(“dwn btn”).addEventListener('click',function()){
//生成包含一些内容的hello.txt文件的下载
变量文本=[
'相当长的英文文本字符串,一条错误消息',
getLastUpdated(),
“结束”
].join('\n');
var filename=“hello.txt”;
下载(文件名,text.replace(/\n/g,“\r\n”);//转换LF-ro-CRLF
},假)代码>
D1 S1
D1 S2
D2 S1
D2 S2
D3 S1
D3S2
我们可以假设你的意思是生成
而不是获取生成
?是的,刚刚编辑过-对不起!先生,你是魔术师!非常感谢。我边走边学习,stackoverflow非常有用。非常感谢:)所以我在我的网站和Html编辑器3.5V上尝试了这段代码,下载按钮不会启动命令。。。然而在这里它工作得很好。。。建议?据猜测,这是因为您的脚本在文档正确加载之前正在运行。尝试将脚本块移动到正文的末尾。它在中工作,所以你应该能够让它在其他地方工作。