定义关键字以替换长网址

时间:2015-06-17 02:56:06

标签: html css url tags

创建下载按钮我通常使用:

<button><a href="url-to-the-file"></a></button>

有没有办法定义 myfile = url-to-the-file ,以便我可以使用:

<button><a href="myfile"></a></button>

1 个答案:

答案 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()

注意(为了我自己的安心!)这些代码都不代表优化或最佳实践;它只是为了说明这个想法。例如,您可能希望将点击侦听器放在祖先上!