Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的文件blob保存整个网页而不是输入的字符串?_Javascript_Html_Blob - Fatal编程技术网

Javascript 为什么我的文件blob保存整个网页而不是输入的字符串?

Javascript 为什么我的文件blob保存整个网页而不是输入的字符串?,javascript,html,blob,Javascript,Html,Blob,我有一个接收字符串的函数,我希望人们能够下载由该字符串组成的文本文件。但是,每当我单击链接时,下载的文件只包含整个HTML页面而不是字符串 JS: HTML: 为什么要这样做?我是否构造了错误的Blob?如何修复它?在运行时,href属性为空。 添加$(document).ready函数或使用经典方法: window.addEventListener("load", function() { document.getElementById('downloadlink').href =

我有一个接收字符串的函数,我希望人们能够下载由该字符串组成的文本文件。但是,每当我单击链接时,下载的文件只包含整个HTML页面而不是字符串

JS:

HTML:



为什么要这样做?我是否构造了错误的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));