(Javascript) .click () кликабельный div внутри iframe - PullRequest
0 голосов
/ 13 сентября 2018

Представьте себе ситуацию, когда у меня есть фрейм веб-сайта.Внутри этого сайта есть кнопка, в которой я хочу нажать через javascript.

Изучив HTML-код веб-сайта, я заметил, что кнопка на самом деле является элементом div с классом like.

.

Итак, я попробовал это:

function likeFunction() 
{
    var iframe = document.getElementById("myFrame");
    var elmnt = iframe.contentWindow.document.getElementsByTagName("div")[10];
    elmnt.click();
}

или

function likeFunction() 
{
    var iframe = document.getElementById("myFrame");
    iframe.contentWindow.document.getElementsByTagName("div")[10].click();
}

, и моей последней попыткой было присвоить этому div ID = 'ex'

function likeFunction() 
{
    var iframe = document.getElementById("myFrame");
    iframe.contentWindow.document.getElementById("ex").click();
}

Но, в конце концов, ничто действительно не сделало это для меня, какие-нибудь идеи?

Заранее спасибо!

1 Ответ

0 голосов
/ 13 сентября 2018

Ваше решение должно работать, пока iFrame находится в одном домене. Если это не так, вы должны получить сообщение об ошибке

iframe.contentWindow.document.getElementsByTagName("div")[10].click();

Так что вы, наверное, заметили.

Мои единственные мысли:

  • Возможно, вы используете неправильный селектор,
  • возможно, вы запускаете опубликованный скрипт в самом iframe, а не в родительской области
  • возможно, вы запускаете это до загрузки iFrame. Возможно, запустив этот onDocumentComplete в родительском документе или каким-либо другим способом.
  • Возможно, прослушиватель щелчков находится на элементе, отличном от того, на котором вы щелкаете программно.

Но в упомянутых мной сценариях вы должны получить ошибку, о которой не упоминали.

В противном случае общий подход работает на моих тестах.

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