ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript はブラウザー アクセスのバイパスを防ぐためにリンクを自動的にクリックします。

JavaScript はブラウザー アクセスのバイパスを防ぐためにリンクを自動的にクリックします。

高洛峰
高洛峰オリジナル
2017-01-21 11:12:192089ブラウズ

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

ここで、card 要素は、イベントがバインドされている要素です。 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 がイベント委任の最後のステップであり、委任されたイベントを呼び出し要素とリンクしていることがわかります。この要素を Effect と呼ぶイベントを達成します。

最後に、これを達成するために入力を使用することをお勧めします。最終的な解決策は次のとおりです:

<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 中国語 Web サイトをサポートしていただければ幸いです。

JavaScript の自動クリック リンクとブラウザ アクセスのバイパスを防ぐ方法の詳細については、PHP 中国語 Web サイトの関連記事に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。