javascript - 如何使用js主動觸發事件?
三叔
三叔 2017-06-22 11:54:01
0
4
2033


https://login.taobao.com/memb...

登入淘寶帳號多次密碼錯誤後,就會需要按住滑桿拖曳到右邊(如圖)。怎麼用js實作「按住滑桿,拖曳到左右邊呢」?

三叔
三叔

全部回覆(4)
洪涛

這個滑動塊是用來偵測機器人的,如果你用腳本直接滑動過去,它會判斷你為機器人。
其實它的本質不是要你滑動過去,而是檢測你在拖曳前,拖曳中,拖曳後的滑鼠行為是否符合真人特徵

学习ing

原生js裡有個 createEvent()方法,可以主動觸發事件。例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p id="aaa" onclick="alert(1)"></p>
    <script type="text/javascript">
        var event = document.createEvent('MouseEvents');

        event.initMouseEvent('click', true, true, document.defaultView, 0, 0, 0, 0, 0, false, false, false, false, 0 ,null);

        aaa.dispatchEvent(event);
    </script>
</body>
</html>

你可以根據自己將click換成mousemove。

漂亮男人


看圖,該滾動條初始化是一個span也就是你圈的部分,還有一個p用來顯示拖曳進度。
如果你是問的只是針對達到它的驗證
在拖動該span的時候該span的left和p.nc_1__bg的width發生改變,這時嘗試主動修改這兩個style,值都設為258px,然後點選(或mousedown、mouseup)該span,發現能夠完成驗證。

思路:修改style,然后触发span的click、mousedown、mouseup事件,因为不确定它具体是绑定在up还是down事件中(根据初步操作,应该是绑定在鼠标按下事件中),所以都触发一遍,至于click只是为了防漏.
代码:
     修改样式:就是修改p的width和span的left为258px,这里略过。
     js:$('#nc_1_wrapper #nc_1_n1z').click();    //触发单击事件
         $('#nc_1_wrapper #nc_1_n1z').mousedown();    //触发鼠标按下事件
         $('#nc_1_wrapper #nc_1_n1z').mouseup();    //触发鼠标弹起事件
刘奇

其實就是模擬滑鼠抬起到時候就行判斷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板