Пользовательский скрипт добавляет в DOM без необходимости перезарядки страницыJavascript

Форум по Javascript
Ответить
Anonymous
 Пользовательский скрипт добавляет в DOM без необходимости перезарядки страницы

Сообщение Anonymous »

Я работаю над пользовательским скриптом (я использую Tampermoney в качестве менеджера по сценариям пользователей), чтобы добавить ссылку на динамические гнилые помидоры на страницу Moblefin Movies/Series. В настоящее время):

вот мой скрипт:
// ==UserScript==
// @name Rotten Tomatoes Links for Jellyfin
// @namespace http://stpettersen.xyz
// @version 2025-09-07
// @description This script adds a Rotten Tomatoes link for TV and movies on Jellyfin.
// @author Sam Saint-Pettersen
// @match https://jellyfin.mmedia.stpettersen.xyz/*
// @icon Изображение
// @grant none
// ==/UserScript==

(function() {
// Replace @match with your Jellyfin server URL.
'use strict';

function waitForElement(selector, targetNode = document.body) {
return new Promise((resolve) => {
const element = document.querySelector(selector);
if (element) {
return resolve(element);
}

const observer = new MutationObserver(() => {
const foundElement = document.querySelector(selector);
if (foundElement) {
observer.disconnect();
resolve(foundElement);
}
});

observer.observe(targetNode, {
childList: true,
subtree: true
});
});
}

function injectRTLink() {
let targetEl = null;
let links = document.getElementsByClassName('button-link')
for (let i = 0; i < links.length; i++) {
if (links.href.startsWith("https://www.themoviedb.org")) {
targetEl = links;
break;
}
if (targetEl != null) {
break;
}
}
let genre = "m";
let year = "";
let title = document.getElementsByTagName("bdi")[0].innerHTML.toLowerCase()
.replace(/ /g,"_").replace(/'/g,"").replace(/_&/g, "").replace(/:/g, "").replace(/,/g, "").replace(/-/g, "_");
let otm = document.getElementsByClassName("originalTitle")[0];
if (otm) {
let ot = document.getElementsByClassName("originalTitle")[0].innerHTML;
if (ot.length > 0) year = "_" + ot;
}
let ott = document.getElementsByClassName("originalTitle")[0];
if (ott) {
let ot = document.getElementsByClassName("originalTitle")[0].innerHTML;
if (ot == "TV") genre = "tv";
}
targetEl.insertAdjacentHTML("afterend",
`, Rotten Tomatoes`
.replace("_TV", ""));
}

// Wait for bottom cards to load before attempting to get/insert links.
waitForElement('.card').then(element => {
injectRTLink();
});
})();
< /code>
Любые указатели были бы великолепны. Спасибо. />https://gist.github.com/stpettersens/ec ... fd1b23cd7a


Подробнее здесь: https://stackoverflow.com/questions/797 ... eload-page
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»