Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   программно нажать на кнопку,ссылку (https://javascript.ru/forum/css-html-internet-explorer/74493-programmno-nazhat-na-knopku-ssylku.html)

Brick 16.07.2018 20:14

программно нажать на кнопку,ссылку
 
Нашел,такую информацию на сайте:
для клика на кнопку программно используются события click() или submit() для формы.

document.getElementsByClassName("класс кнопки").click();


или

document.getElementById("идентификато формы").submit(); // если кнопка имеет type="submit"


если это кнопка type="submit", то можно через форму

document.getElementById("идентификато _формы").submit();

//или

document.forms.(имя_формы).submit();


если это просто кнопка и у нее есть только class, и такой class только у одного элемента на странице, то добавляете в начале страницы реализацию метода getElementsByClassName() для IE и 

document.getElementsByClassName("имя_класс а")[0].click();

методы с маленьких букв начинаются вроде...а также getElementsByName пишется с буквой s (все методы getElements, кроме getElementByIdпишутся с буковкой s) + необходимо указать № элемента, т.к. getElementsByName это коллекция элементов на странице с аттрибутом name

№ элемента на странице (нумерация элементов начинается с 0)
--
очень помогла, столкнулся с 2-мя проблемами:
-как нажать на кнопку ,ссылку без классов,id ,имени
и как отправить кнопку.
Прошу мне пожалуйста помочь :)

рони 16.07.2018 20:36

Brick,
document.links[0].click()

Brick 16.07.2018 20:58

можно пожалуйста подробнее,я новичок

Brick 16.07.2018 21:00

links -это что?не работал с ним :(

Brick 16.07.2018 21:07

ссылка <a href="http//....">текст</a>
как ,на неё нажать javascript (ом)?

Brick 16.07.2018 21:08

рони, ?

рони 16.07.2018 21:28

Brick,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

  <script>
document.addEventListener('DOMContentLoaded', function() {
    document.links[2].click()

  });
  </script>
</head>

<body>
<a href="http//....">текст</a>
<a href="http//....">текст</a>
<a href="https://javascript.ru/forum/">forum</a>
<a href="http//....">текст</a>
</body>
</html>

Brick 16.07.2018 21:38

рони,
Запутал есть такая функция
<a href="http://..." class="yellow">ссылка</a>

q_time=setInterval(function clik()
{
document.getElementsByClassName("yellow")[0].click(); 
},1600)

--
если нет класса ,как нажать на ссылку?
<a href="http://...">ссылка</a>

Brick 16.07.2018 21:41

рони,
у вас скрипт нажмет на ссылку на 21-строке?
[0],[1],[2] - 3-я )

рони 16.07.2018 21:44

Цитата:

Сообщение от Brick
если нет класса ,как нажать на ссылку?

вычислить индекс и заменить число 2
вычислить по атрибутам ссылки
по тексту

Brick 16.07.2018 21:46

рони,
по тексту эт как,можно пример?

Brick 16.07.2018 21:49

есть код:
<form id="id1" method="post" action="./5b4828d2e4b02892c21e5291?-1.IFormSubmitListener-topicCommentFormPanel-commentForm"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="id1_hf_0" id="id1_hf_0"></div>
<textarea class="tarea" rows="5" id="message" name="text"></textarea>
<span class="btn_g w120 flr"><span class="btn_g_in"><input type="submit" value="Отправить"></span></span>
</form>

--
как нажать на кнопку?
код:
document.getElementById("id1").submit();

не подойдёт, при каждом нажатии он меняется,то на id2....id9 или ida....idb,закономерности нет,рамдомно меняется
как нажать?

рони 16.07.2018 21:53

Brick,
document.forms[0].submit()

Brick 16.07.2018 21:53

<a href="http://yandex.ru>яндекс</a>


q_time=setInterval(
document.addEventListener('DOMContentLoaded', function() 
{
document.links[0].click();
},4000)

правильный код?

рони 16.07.2018 21:55

Brick,
document.getElementById("message").form.submit()

Brick 16.07.2018 21:58

document.forms[0].submit();
это
работает ,спасибо

рони 16.07.2018 21:59

Brick,
<a href="http://yandex.ru">яндекс</a>
 <script>
document.addEventListener('DOMContentLoaded', function() {
    var q_time = setInterval(function() {
        document.links[0].click();
    }, 4000)

})
</script>

Brick 16.07.2018 22:05

мой вариант,проверил тоже работает или мой неправильно?
q_time=setInterval(
document.addEventListener('DOMContentLoaded', function qwn() 
{
document.links[0].click();
}),1000)

рони 16.07.2018 22:10

Цитата:

Сообщение от Brick
мой неправильно?

да неправильно, но кликнуть сможет 1 раз
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>


</head>

<body>
<a href="#" onclick="this.text++;return false">0</a>
<script>
q_time=setInterval(
document.addEventListener('DOMContentLoaded', function qwn()
{
document.links[0].click();
}),1000)

</script>

<a href="#" onclick="this.text++;return false">0</a>
<script>
document.addEventListener('DOMContentLoaded', function() {
    var q_time = setInterval(function() {
        document.links[1].click();
    }, 1000)

})
</script>
</body>
</html>

Brick 16.07.2018 22:38

рони,
спасибо за помощь!

senex 16.07.2018 23:50

Найти нужную ссылку или другой элемент можно также по значению атрибута:


document.querySelector('a[href="http://google.com"]');

document.querySelector('a[href$="google.com"]'); // в конце "google.com"

document.querySelector('a[href^="http://google"]'); // в начале  "http://google"

document.querySelector('a[href*="google"]'); // содержит "google"

document.querySelector('button[id^="myid"]'); // в начале id - "myid"

document.querySelector('input[type="submit"][name="send"]');

document.querySelector('input[value="send"]');


ну и так далее

Brick 16.07.2018 23:50

меня вот ещё что интересовало:
рандом чисел в javascript

Brick 16.07.2018 23:52

у меня есть такой код:
q=Math.floor(Math.random()*10) +1;

j0hnik 16.07.2018 23:53

+1 зачем?

Brick 16.07.2018 23:55

не понимаю ,как работать с циклом :(

цикл к примеру к числу А прибавлять число 1,пока число А не будет равно 10 или меньше 10.
--
как в коде это записать js?

Brick 16.07.2018 23:56

j0hnik,
раундом от 1 до 10

j0hnik 16.07.2018 23:57

что должен делать этот цикл?

Brick 16.07.2018 23:57

j0hnik,
приведите примеры рандомов ,обычные из массива

Brick 16.07.2018 23:58

j0hnik,
цикл должен прибавлять к числу А числа, пока число А не станет равно 10,
я понимаю это цикл?

j0hnik 16.07.2018 23:58

q=Math.ceil(Math.random()*10);
лучше так

j0hnik 16.07.2018 23:59

у массива с нуля отсчет если что

рони 16.07.2018 23:59

Brick,
:-?

j0hnik 17.07.2018 00:00

for(var i =0; i<=10; i++){
//тут что-то делаем
}

j0hnik 17.07.2018 00:01

Brick,
да лучше скажите чего добиться хотите, или просто изучаете циклы?

Brick 17.07.2018 00:07

изучаю циклы.
вот есть функция к примеру.
<span id="1">0</span>
<script>
function qwe_() 
{

A=document.getElementById('1').innerHTML;
if (A<10)
{
k=((A+1)*1);
{
document.getElementById("1").innerHTML=k;
}} 
qwe_() ;
}
</script>

можно её как-то через цикл делать или,как-то по другому?

Brick 17.07.2018 00:08

а раундом от 5 до 20 ?или от 0 до 5?
как записать?

Brick 17.07.2018 00:10

Ещё с рандомом вот есть условие как его реализовать
у нас есть 5 чисел: 1;2;3;4;5;
как сделать чтоб число 1 выпадало с вероятностью 90%, число 2 - вероятность 50%,число 3;4;5 - вероятность -10%
???
на javascript ?
я думаю через массив.

Brick 17.07.2018 00:11

помогите пожалуйста :(

рони 17.07.2018 00:12

Brick,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>

<body>
<span id="1">0</span>
<script>

function qwe_()
{
   var A= +document.getElementById('1').innerHTML;
   if(A < 10) {
     A++;
     document.getElementById('1').innerHTML = A;
     window.setTimeout(qwe_, 300)
   }
}
qwe_()
</script>
</body>
</html>

рони 17.07.2018 00:16

Цитата:

Сообщение от Brick
как сделать чтоб число 1 выпадало с вероятностью 90%, число 2 - вероятность 50%,число 3;4;5 - вероятность -10%

сумма вероятностей должна 100%!


Часовой пояс GMT +3, время: 00:37.