Skip to content

Commit f2b6d78

Browse files
committed
Use event listener for QR-Code display in CSP compliance purpose
Signed-off-by: Thibaud CANALE <[email protected]>
1 parent 8b334a5 commit f2b6d78

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

plugins/qrcode/qrcode.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
<div class="linkqrcode">
2-
<a href="#" onclick="showQrCode(this); return false;" class="qrcode" data-permalink="%s">
3-
<img src="%s/qrcode/qrcode.png" class="linklist-plugin-icon" title="QR-Code" alt="QRCode">
4-
</a>
2+
<img data-permalink="%s" src="%s/qrcode/qrcode.png" class="linklist-plugin-icon qrcode" title="QR-Code" alt="QRCode">
53
</div>

plugins/qrcode/shaarli-qrcode.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ function showQrCode(caller,loading)
5151
element.id = 'permalinkQrcode';
5252

5353
// Make QR-Code div commit sepuku when clicked:
54-
if ( element.attachEvent ){
54+
if (element.addEventListener) {
55+
element.addEventListener('click', function() {
56+
this.parentNode.removeChild(this);
57+
});
58+
} else if (element.attachEvent) {
5559
element.attachEvent('onclick', 'this.parentNode.removeChild(this);' );
5660

5761
} else {
@@ -89,3 +93,18 @@ function removeQrcode()
8993
}
9094
return false;
9195
}
96+
97+
// Create "click" event listeners for QR-Code display action
98+
function setQrCodeClickEvent()
99+
{
100+
const qrcode_collec = document.getElementsByClassName("qrcode");
101+
102+
Array.from(qrcode_collec).forEach(function(element) {
103+
element.addEventListener('click', function() {
104+
showQrCode(this);
105+
return false;
106+
});
107+
});
108+
}
109+
110+
setQrCodeClickEvent();

0 commit comments

Comments
 (0)