[JS] Как эмулировать нажатие мышкой?

Discussion in 'PHP' started by assasin94r, 24 Mar 2012.

  1. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    Подскажите плиз: как эмулировать нажатие мышкой(клик) по обьекту?

    З.Ы.: без JQuery!
     
  2. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Code:
    document.getElementById ('mybutton').click ();
    
     
  3. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    krypt3r, Вы сами то хоть этот код пробовали?
     
  4. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Никак кроссбраузерно не эмулируешь.
     
  5. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    не важно, может быть только для одного браузера (но не IE)



    З.Ы.: как-нить возможно и кросбраузерно, ведь JQuery это делает)
     
    #5 assasin94r, 25 Mar 2012
    Last edited: 25 Mar 2012
  6. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    http://code.jquery.com/jquery-1.7.2.js вот код. смотри. он явно не эмулирует нажатие кнопки мыши, он, скорее, эмулирует последствия.
     
  7. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    assasin94r, давайте не путать понятия. У jQuery click() не эмулирует нажатие, а смотрит, что висит на обработчике onClick и выполняет это.
    В этом легко убедиться

    PHP:
    $('body').append('<button class="test">Click Me</button>');
    $(
    '.test').click(function()
    {
        
    window.open('http://ya.ru');
    });
    $(
    '.test').click();
    Любой нормальный браузер выдаст сообщение о блокировании всплывающего окна. В то же время, если кликнуть мышкой на созданную кнопку - без проблем откроется новое окно.
     
    #7 FindeR, 25 Mar 2012
    Last edited: 29 Mar 2012
  8. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    Разница только в том, что $('id').click(); не сработает для обычних ссылок где не прописан onClick?
     
  9. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Почему бы не заглянуть в исходники jQuery ?
     
  10. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    я в чужом коде не очень...,
    чет ниче не понятно =(
     
  11. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    Так, как эмулировать "последствия нажатие кнопки мыши"?
     
    #11 assasin94r, 25 Mar 2012
    Last edited: 26 Mar 2012
  12. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    И что дальше теперь? Тебе уже показали, как правильно
     
  13. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    чё показали?!
     
  14. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    Chaak, Вы об этом ↑ ?
     
  15. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Показали, что нужно разобраться, как сделано у jQuery. Это фреймворк, а не ЯП.
    Глянуть, как там реализовано click() и сделать также.


    Банальный пример

    PHP:

    var test document.getElementById('some_element');
    test.onclick = function() {alert('test'); return false;}    
    (eval(
    test.onclick));    

     
    #15 FindeR, 25 Mar 2012
    Last edited: 26 Mar 2012
  16. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    FindeR, должен признать Ваш банальный пример не работает
     
  17. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Серьёзно? Или вы просто не создали элемент с id="some_element" ?

    Т.е. вот такое не сработает?
    PHP:
    <html>
    <
    head>
    <
    script>
    function 
    init()
    {
        var 
    test document.getElementById('some_element');
        
    test.onclick = function() {alert('test'); return false;}    
        (eval(
    test.onclick));
    }

    window.onload init;
    </script>
    </head>
    <body>
    <button id="some_element">Click</button>
    </body>
    </html>
     
    1 person likes this.
  18. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Прекрасно работает
    HTML:
    <button id='some_element'>aaa</button>
    <script>
    var test = document.getElementById('some_element'); 
    test.onclick = function() {alert('test'); return false;}     
    (eval(test.onclick)); 
    </script>
    Изучите сначала Javascript, хотя бы малейшие азы, лишь потом пишите на форум.
     
    1 person likes this.
  19. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    FindeR, сорри, работает.
    Я лишние ';' поставил
     
  20. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    спасиб за пример
     
Loading...
Similar Threads - эмулировать нажатие мышкой
  1. GAiN
    Replies:
    3
    Views:
    6,989