File tree 3 files changed +32
-3
lines changed
test/sap/ui/webcomponents/main/pages
3 files changed +32
-3
lines changed Original file line number Diff line number Diff line change 3
3
role =" link"
4
4
href =" {{ ctr.href }} "
5
5
target =" {{ ctr.target }} "
6
+ rel =" {{ ctr._rel }} "
6
7
tabindex =" {{ tabIndex }} "
7
8
?disabled =" {{ ctr.disabled }} "
8
9
aria-disabled =" {{ ariaDisabled }} " >
Original file line number Diff line number Diff line change @@ -92,6 +92,10 @@ const metadata = {
92
92
wrap : {
93
93
type : Boolean ,
94
94
} ,
95
+
96
+ _rel : {
97
+ type : String ,
98
+ } ,
95
99
} ,
96
100
events : /** @lends sap.ui.webcomponents.main.Link.prototype */ {
97
101
@@ -149,6 +153,11 @@ const metadata = {
149
153
* @public
150
154
*/
151
155
class Link extends WebComponent {
156
+ constructor ( ) {
157
+ super ( ) ;
158
+ this . _dummyAnchor = document . createElement ( "a" ) ;
159
+ }
160
+
152
161
static get metadata ( ) {
153
162
return metadata ;
154
163
}
@@ -157,6 +166,15 @@ class Link extends WebComponent {
157
166
return LinkRederer ;
158
167
}
159
168
169
+
170
+ onBeforeRendering ( ) {
171
+ const needsNoReferrer = this . target === "_blank"
172
+ && this . href
173
+ && this . _isCrossOrigin ( ) ;
174
+
175
+ this . _rel = needsNoReferrer ? "noreferrer" : undefined ;
176
+ }
177
+
160
178
onclick ( event ) {
161
179
if ( this . disabled ) {
162
180
return ;
@@ -198,6 +216,16 @@ class Link extends WebComponent {
198
216
}
199
217
}
200
218
219
+ _isCrossOrigin ( ) {
220
+ const loc = window . location ;
221
+
222
+ this . _dummyAnchor . href = this . href ;
223
+
224
+ return ! ( this . _dummyAnchor . hostname === loc . hostname
225
+ && this . _dummyAnchor . port === loc . port
226
+ && this . _dummyAnchor . protocol === loc . protocol ) ;
227
+ }
228
+
201
229
static get calculateTemplateContext ( ) {
202
230
return LinkTemplateContext . calculate ;
203
231
}
Original file line number Diff line number Diff line change 35
35
36
36
< body >
37
37
< section class ="group ">
38
- < h2 > link </ h2 >
39
- < ui5-link href ="# " id ="link "> link</ ui5-link > < span > native span</ span >
38
+ < h2 > cross-origin </ h2 >
39
+ < ui5-link href ="https://www.google.com " target =" _blank " id ="link "> link</ ui5-link > < span > native span</ span >
40
40
</ section >
41
41
42
42
< section class ="group ">
43
43
< h2 > Disabled link</ h2 >
44
- < ui5-link id ="disabled-link " disabled > Disabled link</ ui5-link >
44
+ < ui5-link href =" /a.html " id ="disabled-link " disabled > Disabled link</ ui5-link >
45
45
</ section >
46
46
47
47
< section class ="group ">
You can’t perform that action at this time.
0 commit comments