我知道如何<a href="file.jpg" download="name">在HTML中使用该块,但是恐怕这不适用于该项目。
我想要一个下载链接,该链接将(不出所料)下载文件。我还要在屏幕上显示一个文本框,允许用户命名要下载的文件。
该网站将如下所示:
Name:<input type="text" name="Name" value="Custon Name">
<br>
<button type="button">Download</button>Run Code Online (Sandbox Code Playgroud)
我希望该<button>块onclick"function()"用于下载文件。该功能将从文本框中获取文本,并在下载文件时使用它来命名文件。我需要帮助的事情是找到一种使用Javascript或JQuery以相同方式命名文件的方法download="name"。
我已经寻找了一段时间,但没有运气。这个项目可能吗?如果是这样,怎么做?
我创建了一个简单的类,它扩展了jQuery. 除了添加一些额外的特定于类的方法之外,它没有做太多事情。问题是,这些方法不能存在,因为对象将自身转换为类型jQuery,而自定义类原型没有了。
这是发生的事情:
class myClass extends jQuery {
constructor(){
super("<div>")
this.append("<a>")
// This works as your would expect
}
createLink(){
this.find("a").attr("href", "//google.com")
}
}
let obj = new myClass();
obj.createLink() // Uncaught TypeError: obj.createLink is not a function
Run Code Online (Sandbox Code Playgroud)
奇怪的是,将原型输出到控制台显示这.createLink 是一个函数:
console.log(myClass.prototype) // {constructor: ƒ, createLink: ƒ}
Run Code Online (Sandbox Code Playgroud)
更奇怪的是,这个对象甚至似乎都不是它自己的一个实例:
class myClass extends jQuery {
constructor(){
super()
}
}
console.log(new myClass instanceof myClass) // false
Run Code Online (Sandbox Code Playgroud)
但其他任何工作:
class myNewClass extends anyOtherObject {
constructor(){
super()
}
}
console.log(new myNewClass …Run Code Online (Sandbox Code Playgroud)