Home  >  Article  >  Web Front-end  >  JavaScript automatically clicks on links to prevent bypassing browser access

JavaScript automatically clicks on links to prevent bypassing browser access

高洛峰
高洛峰Original
2017-01-21 11:12:192045browse

To log in to an Alipay account, you need to have an effect, that is, when you open the link page, you do not need to click the link and jump directly to the Alipay login page. In other words, you need to create an effect that automatically clicks on the link.

Basically use this:

<body onLoad="autoclick(&#39;auto&#39;)">
 
<a id=&#39;auto&#39; href=".$url."><img border=&#39;0&#39; src=&#39;images/alipaylog.gif&#39; /></a>
 
</body>
 
<script type="text/javascript">
 
 
 function autoclick(){
 
 lnk = document.getElementById("auto");
 
 lnk.click();
 
  }
 
</script>

This can be used under IE, but not other browsers. It’s still overwhelming, wasting everyone’s time searching.

The following one is relatively reliable, let’s take a look first:

<body onLoad="autoclick(&#39;auto&#39;)">
 
<a id=&#39;auto&#39; href=".$url."><img border=&#39;0&#39; src=&#39;images/alipaylog.gif&#39; /></a>
 
</body>
 
<script type="text/javascript">  1:
 
function autoclick(name)
 
{ 
 
  if(document.all) 
 
  { 
 
    //alert(1);
 
     document.getElementById(name).click(); 
 
  } 
 
   else 
 
  { 
 
    var evt = document.createEvent("MouseEvents"); 
 
      evt.initEvent("click", true, true); 
 
    //alert(2);
 
    document.getElementById(name).dispatchEvent(evt); 
 
   } 
 
}
 
</script>

This works fine under Chrome and IE, but it works fine under Firefox Can't do it anymore. But it's better than the first one.

dispatchEvent is problematic under Firefox. Here is the solution:

document.getElementById("me").onclick = function() {
 
  var card = document.getElementById("card");
 
   if(document.createEvent){
 
    var ev = document.createEvent(&#39;HTMLEvents&#39;);
 
    ev.initEvent(&#39;click&#39;, false, true);
 
    card.dispatchEvent(ev);
 
   }
 
   else
 
     card.click();
 }

The card element is the element with the event bound to it. The me element is the element that wants to call the card's click event by clicking on the me element. . . .

The focus of the problem is that firefox's js engine needs to create an event first: var ev = document.createEvent('HTMLEvents');

Then specify the event as a click event: ev.initEvent( 'click', false, true);

Finally pay the event to the card element: card.dispatchEvent(ev);

card = document.getElementById('id');

var ev = document.createEvent('HTMLEvents');

ev.initEvent('click', false, true);

card.dispatchEvent(ev);

It can be seen that dispatchEvent is the last step in event delegation. It links the delegated event with the calling element to achieve the effect of calling the event of this element.

Finally, it is recommended to use input to achieve it. The following is the final solution:

<body onLoad="autoclick(&#39;auto2&#39;)">
 
 <input id="auto2" type="hidden" onClick="javascript:location.href = &#39;<?=$url?>&#39; " />
 
</body>
 
<script type="text/javascript">  1:
 
function autoclick(name)
 
 { 
 
  if(document.all) 
 
  { 
 
    //alert(1);
 
     document.getElementById(name).click(); 
 
  } 
 
   else 
 
  { 
 
   var evt = document.createEvent("MouseEvents"); 
 
     evt.initEvent("click", true, true); 
 
    //alert(2);
 
    document.getElementById(name).dispatchEvent(evt); 
 
   } 
}
</script>

The above JavaScript automatically clicks on the link to prevent bypassing the browser The access method is all the content shared by the editor. I hope it can give you a reference, and I also hope that everyone will support the PHP Chinese website.

For more JavaScript automatic click links and methods to prevent bypassing browser access, please pay attention to the PHP Chinese website for related articles!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn