mirror of
https://gitlab.com/idotj/mastodon-embed-timeline.git
synced 2025-07-09 15:37:29 +00:00
fix JS function problem
This commit is contained in:
parent
de56436a0d
commit
ff28919faf
@ -36,20 +36,42 @@ let MastodonApi = function (params_) {
|
|||||||
this.mtBodyContainer.addEventListener('click', function (event) {
|
this.mtBodyContainer.addEventListener('click', function (event) {
|
||||||
// Check if clicked in a toot
|
// Check if clicked in a toot
|
||||||
if (event.target.localName == 'article' || event.target.offsetParent.localName == 'article') {
|
if (event.target.localName == 'article' || event.target.offsetParent.localName == 'article') {
|
||||||
this.openTootURL(event);
|
openTootURL(event);
|
||||||
}
|
}
|
||||||
// Check if clicked in Show More/Less button
|
// Check if clicked in Show More/Less button
|
||||||
if (event.target.localName == 'button' && event.target.className == 'spoiler-link') {
|
if (event.target.localName == 'button' && event.target.className == 'spoiler-link') {
|
||||||
this.toogleSpoiler(event);
|
toogleSpoiler(event);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.mtBodyContainer.addEventListener('keydown', function (event) {
|
this.mtBodyContainer.addEventListener('keydown', function (event) {
|
||||||
// Check if Enter key pressed with focus in an article
|
// Check if Enter key pressed with focus in an article
|
||||||
if (event.code === 'Enter' && event.target.localName == 'article') {
|
if (event.code === 'Enter' && event.target.localName == 'article') {
|
||||||
this.openTootURL(event);
|
openTootURL(event);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Open Toot in a new page avoiding any other natural link
|
||||||
|
function openTootURL(event_) {
|
||||||
|
let urlToot = event_.target.closest('.mt-toot').dataset.location;
|
||||||
|
if (event_.target.localName !== 'a' && event_.target.localName !== 'span' && event_.target.localName !== 'button' && urlToot) {
|
||||||
|
window.open(urlToot, '_blank');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spoiler button
|
||||||
|
function toogleSpoiler(event_) {
|
||||||
|
let spoilerText = event_.target.nextSibling;
|
||||||
|
let spoilerBtnText = event_.target.textContent;
|
||||||
|
spoilerText.classList.toggle('spoiler-text');
|
||||||
|
if (spoilerBtnText == 'Show more') {
|
||||||
|
spoilerBtnText = 'Show less';
|
||||||
|
event_.target.setAttribute('aria-expanded', 'true');
|
||||||
|
} else {
|
||||||
|
spoilerBtnText = 'Show more';
|
||||||
|
event_.target.setAttribute('aria-expanded', 'false');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get the toots
|
// Get the toots
|
||||||
this.getToots();
|
this.getToots();
|
||||||
|
|
||||||
@ -286,27 +308,7 @@ MastodonApi.prototype.formatDate = function (date_) {
|
|||||||
return displayDate;
|
return displayDate;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Open Toot in a new page avoiding any other natural link
|
|
||||||
MastodonApi.prototype.openTootURL = function (event_) {
|
|
||||||
let urlToot = event_.target.closest('.mt-toot').dataset.location;
|
|
||||||
if (event_.target.localName !== 'a' && event_.target.localName !== 'span' && event_.target.localName !== 'button' && urlToot) {
|
|
||||||
window.open(urlToot, '_blank');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Spoiler button
|
|
||||||
MastodonApi.prototype.toogleSpoiler = function (event_) {
|
|
||||||
let spoilerText = event_.target.nextSibling;
|
|
||||||
let spoilerBtnText = event_.target.textContent;
|
|
||||||
spoilerText.classList.toggle('spoiler-text');
|
|
||||||
if (spoilerBtnText == 'Show more') {
|
|
||||||
spoilerBtnText = 'Show less';
|
|
||||||
event_.target.setAttribute('aria-expanded', 'true');
|
|
||||||
} else {
|
|
||||||
spoilerBtnText = 'Show more';
|
|
||||||
event_.target.setAttribute('aria-expanded', 'false');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Loading spinner
|
// Loading spinner
|
||||||
function removeSpinner(element) {
|
function removeSpinner(element) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user