mirror of
https://github.com/Qortal/qortal.git
synced 2025-02-12 10:15:49 +00:00
Added support for img src updates from a Q-App.
Example: document.getElementById("logo").src = "qortal://thumbnail/QortalDemo/qortal_avatar";
This commit is contained in:
parent
1be3ae267e
commit
566c6a3f4b
@ -59,6 +59,10 @@ function buildResourceUrl(service, name, identifier, path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function extractComponents(url) {
|
function extractComponents(url) {
|
||||||
|
if (!url.startsWith("qortal://")) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
url = url.replace(/^(qortal\:\/\/)/,"");
|
url = url.replace(/^(qortal\:\/\/)/,"");
|
||||||
if (url.includes("/")) {
|
if (url.includes("/")) {
|
||||||
let parts = url.split("/");
|
let parts = url.split("/");
|
||||||
@ -94,6 +98,9 @@ function extractComponents(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function convertToResourceUrl(url) {
|
function convertToResourceUrl(url) {
|
||||||
|
if (!url.startsWith("qortal://")) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
const c = extractComponents(url);
|
const c = extractComponents(url);
|
||||||
if (c == null) {
|
if (c == null) {
|
||||||
return null;
|
return null;
|
||||||
@ -312,13 +319,30 @@ else if (document.attachEvent) {
|
|||||||
*/
|
*/
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
let url = document.querySelector('img').src;
|
let url = document.querySelector('img').src;
|
||||||
if (url.startsWith("qortal://")) {
|
const newUrl = convertToResourceUrl(url);
|
||||||
const newUrl = convertToResourceUrl(url);
|
if (newUrl != null) {
|
||||||
console.log("Loading newUrl " + newUrl);
|
|
||||||
document.querySelector('img').src = newUrl;
|
document.querySelector('img').src = newUrl;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Intercept img src updates
|
||||||
|
*/
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
let img = document.querySelector('img');
|
||||||
|
let observer = new MutationObserver((changes) => {
|
||||||
|
changes.forEach(change => {
|
||||||
|
if (change.attributeName.includes('src')) {
|
||||||
|
const newUrl = convertToResourceUrl(img.src);
|
||||||
|
if (newUrl != null) {
|
||||||
|
document.querySelector('img').src = newUrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
observer.observe(img, {attributes: true});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const awaitTimeout = (timeout, reason) =>
|
const awaitTimeout = (timeout, reason) =>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user