Javascript 为什么我的文件blob保存整个网页而不是输入的字符串?
我有一个接收字符串的函数,我希望人们能够下载由该字符串组成的文本文件。但是,每当我单击链接时,下载的文件只包含整个HTML页面而不是字符串 JS: HTML:Javascript 为什么我的文件blob保存整个网页而不是输入的字符串?,javascript,html,blob,Javascript,Html,Blob,我有一个接收字符串的函数,我希望人们能够下载由该字符串组成的文本文件。但是,每当我单击链接时,下载的文件只包含整个HTML页面而不是字符串 JS: HTML: 为什么要这样做?我是否构造了错误的Blob?如何修复它?在运行时,href属性为空。 添加$(document).ready函数或使用经典方法: window.addEventListener("load", function() { document.getElementById('downloadlink').href =
为什么要这样做?我是否构造了错误的Blob?如何修复它?在运行时,href属性为空。 添加$(document).ready函数或使用经典方法:
window.addEventListener("load", function()
{
document.getElementById('downloadlink').href = window.URL.createObjectURL(new Blob(["content"], {type: 'text/plain'}));
});
这里的问题是,jquerymagic掩盖了您在使用
$(“#downloadlink”)
时实际在做什么。jQuery将来自$
的返回包装在类似数组结构的jQuery对象中。因此,即使id选择器(可能)返回一个元素,jQuery仍然会给您一个数组
因此,您无法执行$('#stuff')。href
。相反,您需要像这样使用jQuery:
$('downloadLink').attr('href', createFile(text));
与大多数jQuery函数一样,它对$
返回的数组中的所有元素应用一些操作
正在工作。创建文件和创建文件之间的区别是什么?在哪里定义了
textFile
?在downloadFile
中,names
中传递了什么?@BaileyParker很抱歉,这是一个输入错误<代码>文本文件在createFile
中定义<代码>名称是一个字符串数组!如果我不得不猜测,textFile
实际上没有定义(它需要定义一个变量,否则它将是undefined
),所以当调用create file时,您可以尝试window.URL.revokeObjectURL(undefined)
可能会出错,然后函数的其余部分无法完成。window.URL.revokeObjectURL
和window.URL.createObjectURL
对我来说是全新的+1@BaileyParker抢手货当我在函数之外定义它时也会发生这种情况,但肯定是我应该修复的东西。谢谢
window.addEventListener("load", function()
{
document.getElementById('downloadlink').href = window.URL.createObjectURL(new Blob(["content"], {type: 'text/plain'}));
});
$('downloadLink').attr('href', createFile(text));