|
@@ -52,35 +52,43 @@
|
|
|
this.innerText = this.dataset.copiedText;
|
|
|
});
|
|
|
|
|
|
- const isMobile = screen.orientation.type.startsWith('portrait');
|
|
|
+
|
|
|
+ const imgLoaderSpinner = d.createElement('div');
|
|
|
+ imgLoaderSpinner.classList.add('loader');
|
|
|
+ const imgLoader = new Image();
|
|
|
+
|
|
|
+ const loadImage = (imgSrc, onSuccess) => {
|
|
|
+ imgLoader.onload = () => {
|
|
|
+ onSuccess();
|
|
|
+ imgLoaderSpinner.remove();
|
|
|
+ };
|
|
|
+ imgLoader.onerror = () => {
|
|
|
+ imgLoaderSpinner.remove();
|
|
|
+ };
|
|
|
+ imgLoader.src = imgSrc;
|
|
|
+ }
|
|
|
searxng.selectImage = function (resultElement) {
|
|
|
|
|
|
if (resultElement) {
|
|
|
|
|
|
- const imgElement = resultElement.querySelector('.result-images-source img');
|
|
|
const thumbnailElement = resultElement.querySelector('.image_thumbnail');
|
|
|
const detailElement = resultElement.querySelector('.detail');
|
|
|
- if (imgElement) {
|
|
|
- const imgSrc = imgElement.getAttribute('data-src');
|
|
|
- if (imgSrc) {
|
|
|
- const loader = d.createElement('div');
|
|
|
- const imgLoader = new Image();
|
|
|
-
|
|
|
- loader.classList.add('loader');
|
|
|
- detailElement.appendChild(loader);
|
|
|
-
|
|
|
- imgLoader.onload = e => {
|
|
|
- imgElement.src = imgSrc;
|
|
|
- loader.remove();
|
|
|
- };
|
|
|
- imgLoader.onerror = e => {
|
|
|
- loader.remove();
|
|
|
- };
|
|
|
- imgLoader.src = imgSrc;
|
|
|
- imgElement.src = thumbnailElement.src;
|
|
|
- imgElement.removeAttribute('data-src');
|
|
|
- }
|
|
|
- }
|
|
|
+ const imgElement = resultElement.querySelector('.result-images-source img');
|
|
|
+ if (!imgElement) return;
|
|
|
+
|
|
|
+ const imgSrc = imgElement.getAttribute('data-src');
|
|
|
+
|
|
|
+ if (!imgSrc) return;
|
|
|
+
|
|
|
+
|
|
|
+ detailElement.appendChild(imgLoaderSpinner);
|
|
|
+ loadImage(imgSrc, () => {
|
|
|
+ imgElement.src = imgSrc;
|
|
|
+ imgElement.removeAttribute('data-src');
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ imgElement.src = thumbnailElement.src;
|
|
|
}
|
|
|
d.getElementById('results').classList.add('image-detail-open');
|
|
|
|