我有以下工作代码 - 这是一个AJAX,因此它没有点击就发布了。我了解到HTTP POST需要点击一下 - 如何在启用鼠标点击的情况下将其转换为HTTP POST?
代码的第二部分实际上只需点击一下 - 但它下载到本地计算机而不是发送到服务器 - 也许从中获取了一些想法,例如var link = document.getElementById("保存&#34)?请参阅http://webaudiodemos.appspot.com/AudioRecorder/index.html上的原始应用。
更新: 我是新手,我从这个博客得到了这些想法:http://www.mousewhisperer.co.uk/ajax_page.html
Ajax(异步Javascript和XML)是一种用于在后台提交服务器请求的技术(或更准确地说,是技术的组合)'并将信息从服务器返回给用户,而无需等待页面加载。 Ajax实际上是几种技术的结合,它们共同提供这种功能。它是如何工作的? 而不是通过例如正常的HTTP POST或GET请求(例如通过提交表单或单击超链接)来向服务器发出用户请求,而Ajax脚本通过使用Javascript来请求服务器XMLHTTPRequest对象。
Recorder.setupDownload = function(blob, filename){
var xhr = new XMLHttpRequest();
xhr.open('POST', './upload.php', true);
xhr.onload = function(e) {};
// Listen to the upload progress.
var progressBar = document.querySelector('progress');
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
progressBar.value = (e.loaded / e.total) * 100;
progressBar.textContent = progressBar.value; // Fallback for unsupported browsers.
}
};
xhr.send(blob);
}
================html code fragment=======
#save, #save img { height: 10vh; }
#save { opacity: 0.25;}
#save[download] { opacity: 1;}
==========works with a click ----------------
var url = (window.URL || window.webkitURL).createObjectURL(blob);
var link = document.getElementById("save");
link.href = url;
link.download = filename || 'output.wav';
答案 0 :(得分:0)
Recorder.setupDownload
是一个功能,因此您可以绑定到用户界面中的事件。换句话说,当页面上发生某些特定事情时,您可以指示JavaScript执行该函数。
使用“点击工作”示例,您可以将Recorder.setupDownload
功能绑定到点击事件:
var link = document.getElementById("save");
link.onclick = Recorder.setupDownload(myblob, myfilename);
将myblob
和myfilename
替换为脚本中的相应变量。
答案 1 :(得分:0)
实际上以下内容将基于@bloodyKnuckles回复(我还在等待照亮硬盘图片 - 欢迎提供支持):
var link = document.getElementById("save");
link.onclick = function () {
Recorder.setupDownload(myblob, myfilename);
};