创建下载按钮我通常使用:
<button><a href="url-to-the-file"></a></button>
有没有办法定义 myfile = url-to-the-file ,以便我可以使用:
<button><a href="myfile"></a></button>
答案 0 :(得分:2)
根据我的评论,我不确定你为什么要这样做,但是例如你可以很容易地用真实链接替换短文本。就像一个非常基本的例子(http://jsfiddle.net/7vbv9oxc/):
HTML:
<button>
<a href="googs">Click</a>
</button>
JS:
var links = {
googs: "http://google.com"
}
// jQuery but vanilla JS shouldn't be hard
$('a').each(function(){
var $this = $(this);
var shortLink = $this.attr('href');
if(typeof(links[shortLink]) !== "undefined") {
$this.attr('href', links[shortLink]);
}
});
或者,您可以在点击时进行替换,从而节省迭代所有锚标记。
$('a').on('click', function(e) {
var $this = $(this);
var shortLink = $this.attr('href');
if(typeof(links[shortLink]) !== "undefined") {
$this.attr('href', links[shortLink]);
}
});
我们不会阻止默认(或返回false),因为我们希望它像普通锚一样运行,但是在交换完成之后。如果您想在加载或重定向目标网址之前执行其他操作,可以在该代码块中添加e.preventDefault()
。
注意(为了我自己的安心!)这些代码都不代表优化或最佳实践;它只是为了说明这个想法。例如,您可能希望将点击侦听器放在祖先上!