Задать вопрос
IgorBee
@IgorBee
JS,VBS,3D.Web с 07.2015

Как произвести кросдоменный click() на другом сайте js?

function getElement(url, selector, c) {
    request(new XMLHttpRequest());

    function request(xhr) {
        xhr.open('GET', 'https://crossorigin.me/' + url, true);
        xhr.send();
        xhr.onreadystatechange = function() {
            if(xhr.readyState == 4) {
                if(xhr.status == 200) {
                    html = document.createElement('div');
                    html.innerHTML = xhr.responseText;
                    var ele=document.querySelector('.btn_like');
                    ele.click();
                    c(html.querySelector(selector));
                    
                }
            }
        }
    }
} 


getElement('https://toster.ru/q/352811', '.page-header__title', function(element) {
    console.log(element);
});


Есть такой код,нужно чтобы перешел код по другому юрл и клинкул "нравится" на ответе.

Сейчас ошибку бросает TypeError: Cannot read property 'click' of null.

Открывать новую вкладку для этого не хочу,нужно на этой всё сделать.
  • Вопрос задан
  • 350 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@Nwton
1) Используя click(), невозможно кликнуть по элементу, который находится на другом сайте, не перейдя на сайт.
2) В getElement вы получаете html исходник сторонней страницы и парсите из исходника dom элемент. Вы не переходите на сайт, как если бы открыли его в браузере.
Ответ написан
@M-ka
frontend присматривающийся к ror
Ну и самый простой способ с учетом ранее написанного мной комментария, то написать это через расширение к браузеру с обильными правами... В которых контент будет открываться в фоновых вкладках и можно делать клики. Ну или не расширением в браузере, а пойти путем тестировщиков и написать для силениума управляющий код и снова же для фонового открытия и выполнения всех коварных замыслов....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы