From a678b2e28c2c98467a96e97590ab72ef647a001c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E9=93=84=E8=BF=90?= Date: Tue, 25 Oct 2016 16:28:14 +0800 Subject: [PATCH 1/6] Support `target="_blank"` for `` --- src/components/link.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/link.js b/src/components/link.js index 92ebc310c..d5de1c06b 100644 --- a/src/components/link.js +++ b/src/components/link.js @@ -49,6 +49,11 @@ export default { // don't redirect on right click /* istanbul ignore if */ if (e.button !== 0) return + // don't redirect if `target="_blank"` + /* istanbul ignore if */ + const target = this.$el && this.$el.attributes.getNamedItem('target') + if (target && target.value === '_blank') return + e.preventDefault() if (this.replace) { router.replace(to) From 85f720a0307b91a68c18830072353b1ec5c7460c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E9=93=84=E8=BF=90?= Date: Tue, 25 Oct 2016 16:31:59 +0800 Subject: [PATCH 2/6] Fix trailing spaces --- src/components/link.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/link.js b/src/components/link.js index d5de1c06b..dbc19115e 100644 --- a/src/components/link.js +++ b/src/components/link.js @@ -53,7 +53,7 @@ export default { /* istanbul ignore if */ const target = this.$el && this.$el.attributes.getNamedItem('target') if (target && target.value === '_blank') return - + e.preventDefault() if (this.replace) { router.replace(to) From 75e6c24a7f940b3de17a40c1624abee9f045eb7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E9=93=84=E8=BF=90?= Date: Tue, 25 Oct 2016 17:03:39 +0800 Subject: [PATCH 3/6] small fix --- src/components/link.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/link.js b/src/components/link.js index dbc19115e..2a84bbc48 100644 --- a/src/components/link.js +++ b/src/components/link.js @@ -51,8 +51,8 @@ export default { if (e.button !== 0) return // don't redirect if `target="_blank"` /* istanbul ignore if */ - const target = this.$el && this.$el.attributes.getNamedItem('target') - if (target && target.value === '_blank') return + const target = this.$el && this.$el.getAttribute('target') + if (target && target.indexOf('_blank') > -1) return e.preventDefault() if (this.replace) { From 21a0305500f5bd1e2d1e5643dbc0700464634706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E9=93=84=E8=BF=90?= Date: Tue, 25 Oct 2016 17:10:22 +0800 Subject: [PATCH 4/6] yet another small fix --- src/components/link.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/link.js b/src/components/link.js index 2a84bbc48..23b531d82 100644 --- a/src/components/link.js +++ b/src/components/link.js @@ -52,7 +52,7 @@ export default { // don't redirect if `target="_blank"` /* istanbul ignore if */ const target = this.$el && this.$el.getAttribute('target') - if (target && target.indexOf('_blank') > -1) return + if (target && target.split(' ').indexOf('_blank') > -1) return e.preventDefault() if (this.replace) { From 494713497af775e709dac31be0c4fd94ea8a7af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E9=93=84=E8=BF=90?= Date: Tue, 25 Oct 2016 18:38:23 +0800 Subject: [PATCH 5/6] hopefully final fix... --- src/components/link.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/link.js b/src/components/link.js index 23b531d82..ae8bc7961 100644 --- a/src/components/link.js +++ b/src/components/link.js @@ -52,7 +52,7 @@ export default { // don't redirect if `target="_blank"` /* istanbul ignore if */ const target = this.$el && this.$el.getAttribute('target') - if (target && target.split(' ').indexOf('_blank') > -1) return + if (target && target.toLowerCase().split(' ').indexOf('_blank') > -1) return e.preventDefault() if (this.replace) { From a87897d6c17f5da2d75ccbbcd16e84e05e733cd0 Mon Sep 17 00:00:00 2001 From: fnlctrl Date: Sun, 13 Nov 2016 16:22:11 +0800 Subject: [PATCH 6/6] fix implementation --- src/components/link.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/link.js b/src/components/link.js index ae8bc7961..539db4626 100644 --- a/src/components/link.js +++ b/src/components/link.js @@ -51,8 +51,8 @@ export default { if (e.button !== 0) return // don't redirect if `target="_blank"` /* istanbul ignore if */ - const target = this.$el && this.$el.getAttribute('target') - if (target && target.toLowerCase().split(' ').indexOf('_blank') > -1) return + const target = e.target.getAttribute('target') + if (/\b_blank\b/i.test(target)) return e.preventDefault() if (this.replace) {