JS как получить все теги img sr c - PullRequest
0 голосов
/ 31 марта 2020

Я хочу получить SR C от каждого <IMG> в твиттере.

let n = document.getElementsByTagName("img");

for(tip of n){
    console.log(tip.src);
}

, и он работает для других страниц, но не для твиттера. Наконец я сделал это;

let n = document.getElementsByTagName("img");

function example(){
    for(tip of n){
        if(tip.src == "https://abs-0.twimg.com/emoji/v2/svg/1f1ea-1f1f8.svg"){
            tip.src = "https://abs-0.twimg.com/emoji/v2/svg/1f3f3-fe0f-200d-1f308.svg";
        }
    }
}

setInterval(example, 100);

С setInterval это работает, также, Твиттер загружает вещи динамически, поэтому с setInterval я могу получить все эти новые результаты. (Как я мог сделать это без использования setInterval?)

Кроме того, по какой-то странной причине картина не меняется. Это не обновляет.

Обновление:

function example(){
let n = document.getElementsByTagName("div");
    for(tip of n){
        console.log(tip.style['background-image']);

        if(tip.style['background-image'] == 'url("https://abs-0.twimg.com/emoji/v2/svg/1f1ea-1f1f8.svg")'){
            tip.style['background-image']= 'url("https://abs-0.twimg.com/emoji/v2/svg/1f3f3-fe0f-200d-1f308.svg")';
        }
    }
}

setInterval(example, 10000);

Теперь это работает отлично, но как я могу получить новые данные, не используя setInterval eeeeeeeveryvery и вызывая функцию только тогда, когда это необходимо?

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Не всегда изображения отображаются с тегом img.

Если вы видите некоторые случаи в твиттере, то брат img - это элемент с img src в его стилях. , Этот элемент показывает изображение. Очевидно, что это не так с каждым изображением в твиттере.

Но для такого случая вы меняете его фон на

let n = document.getElementsByTagName("img");

for(tip of n){
    r.previousSibling.style.backgroundImage='YourImage.png'
}

Кроме того, вы должны использовать некоторый интервал чтобы получить результаты, которые загружаются позже. Или вы можете обнаружить изменения DOM, используя Mutation Observer и запускать свою функцию только при изменении DOM.

1 голос
/ 31 марта 2020

Вам нужно загружать изображение каждый раз, когда вы хотите выполнить их итерацию, чтобы получить "fre sh" img elements

Попробуйте это

function example(){
    let n = document.getElementsByTagName("img");  // Moved here
    for(tip of n){
        if(tip.src == "https://abs-0.twimg.com/emoji/v2/svg/1f1ea-1f1f8.svg"){
            tip.src = "https://abs-0.twimg.com/emoji/v2/svg/1f3f3-fe0f-200d-1f308.svg";
        }
    }
}

setInterval(example, 100);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...