>  기사  >  웹 프론트엔드  >  JavaScript는 자동으로 링크를 클릭하여 브라우저 액세스 우회를 방지합니다.

JavaScript는 자동으로 링크를 클릭하여 브라우저 액세스 우회를 방지합니다.

高洛峰
高洛峰원래의
2017-01-21 11:12:192005검색

Alipay 계정에 로그인하려면 효과가 있어야 합니다. 즉, 링크 페이지를 열 때 링크를 클릭하고 Alipay 로그인 페이지로 직접 이동할 필요가 없습니다. 즉, 링크를 자동으로 클릭하는 효과를 만들어야 합니다.

기본적으로 다음을 사용하세요:

<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>

IE에서는 사용할 수 있지만 다른 브라우저에서는 사용할 수 없습니다. 또한 너무 많아서 모든 사람이 검색하는 데 시간을 낭비합니다.

다음은 비교적 안정적입니다. 먼저 살펴보겠습니다.

<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>

Chrome과 IE에서는 잘 작동하지만 Firefox에서는 더 이상 하지 마세요. 하지만 처음보다 나아졌습니다.

dispatchEvent는 Firefox에서 문제가 있습니다. 해결 방법은 다음과 같습니다.

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();
 }

카드 요소는 이벤트가 바인딩된 요소입니다. me 요소는 me 요소를 클릭하여 카드의 클릭 이벤트를 호출하려는 요소입니다. . . .

문제의 핵심은 Firefox의 js 엔진이 먼저 이벤트를 생성해야 한다는 것입니다. var ev = document.createEvent('HTMLEvents');

그런 다음 이벤트를 클릭 이벤트로 지정합니다. : ev.initEvent( 'click', false, true);

마지막으로 카드 요소에 이벤트를 지불합니다: card.dispatchEvent(ev);

card = document.getElementById('id ');

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

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

card.dispatchEvent( ev);

dispatchEvent는 이벤트 위임의 마지막 단계이며, 위임된 이벤트를 호출 요소와 연결하여 이 요소의 이벤트를 호출하는 효과를 얻는다는 것을 알 수 있습니다.

마지막으로 입력을 사용하는 것이 좋습니다. 최종 해결 방법은 다음과 같습니다.

<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>

위 JavaScript는 자동으로 링크를 클릭하여 방지합니다. 브라우저를 우회해서 접속하는 방법은 모두 편집자가 공유한 내용이므로 참고가 되셨으면 좋겠습니다. 그리고 PHP 중국어 홈페이지도 모두 지원해 주시길 바랍니다.

자바스크립트 자동 클릭 링크와 브라우저 우회를 방지하는 방법에 대한 자세한 내용은 PHP 중국어 웹사이트의 관련 기사를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.