diff --git a/src/image.js b/src/image.js
index a1494cca..38b0742c 100644
--- a/src/image.js
+++ b/src/image.js
@@ -3,13 +3,22 @@ var ImageLoader = require('./ImageLoader')
var showTimer
function showImage (image, dom) {
- var div = document.createElement('div')
- div.innerHTML = ''
+ var a = document.createElement('a')
+ a.target = '_blank'
+ a.href = image.id
- dom.appendChild(div)
+ let img = document.createElement('img')
+ img.src = image.id
+ a.appendChild(img)
+
+ dom.appendChild(a)
+
+ return img
}
function showWikimediaImage (image, options, dom) {
+ let img = document.createElement('img')
+
if (!options.size) {
options.size = 800
}
@@ -31,13 +40,20 @@ function showWikimediaImage (image, options, dom) {
m[1] + Math.ceil(options.size * 1.5) + m[3] + ' 1.5x, ' +
m[1] + Math.ceil(options.size * 2) + m[3] + ' 2x'
- var div = document.createElement('div')
- div.innerHTML = ''
+ let a = document.createElement('a')
+ a.target = '_blank'
+ a.href = 'https://commons.wikimedia.org/wiki/File:' + encodeURIComponent(image.id)
+
+ img.src = src
+ img.srcset = srcset
+ a.appendChild(img)
- dom.appendChild(div)
+ dom.appendChild(a)
}
}
)
+
+ return img
}
// feature: { id: 'File:xxx.jpg', type: 'wikimedia|url', url: 'https://...' }
@@ -46,10 +62,10 @@ function show (img, options, div) {
switch (img.type) {
case 'wikimedia':
- showWikimediaImage(img, options, div)
+ return showWikimediaImage(img, options, div)
break
case 'url':
- showImage(img, div)
+ return showImage(img, div)
break
default:
}
@@ -157,10 +173,10 @@ register_hook('show-popup', function (data, category, dom, callback) {
currentLoader.first({
counter: data.popupImageCounter
- }, function (err, img) {
+ }, function (err, data) {
div.classList.remove('loading')
- if (!img) {
+ if (!data) {
return callback(err)
}
@@ -172,8 +188,12 @@ register_hook('show-popup', function (data, category, dom, callback) {
size: 150
}
- show(img, options, imageWrapper)
- dom.classList.add('hasImage')
+ let img = show(data, options, imageWrapper)
+ if (img) {
+ img.onload = () => {
+ dom.classList.add('hasImage')
+ }
+ }
callback(null)
})