機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

Chrome クリックすると勝手にリンクに飛ばされるやつをなんとかする

最近、特定のサイトを見てると、クリックすると勝手にリンクに飛ばされる感じになることがあります。

例を挙げると、KissAnime。英語字幕でアニメが見れるサイトで、僕のお気に入り。

新規タブにてサイト訪問した場合や、しばらく時間をおいてクリックした際に、別の関係ないサイトに飛ばされ、いわゆるフィッシングとか、Googleのラッキーユーザーに当選したとか、アラートが耳障りなMicrosoftの偽サイトとかに飛ばされるわけなのです。

…うざすぎる。

サーバーサイドの問題なのか、クライアントサイドの問題なのか、わかりませんが、(十中八九サーバーサイドの問題)そこは別にどうでもいいのです。

ちょっと検索しても、これといった解決法が見当たらなかったので、自分で解決することにしました。

苦戦した理由

IT

それと、これ、実は僕、どういう仕組みになっているんだが、さっぱりで。

ずっとイライラしつつ我慢してたんですけど、遂に我慢できなくなって、徹底抗戦してやろうと思ってデベロッパーツールを開いたら、直ぐに解決した、という感じなんですけど。

どうしてわからなかったかといいますと、

これ、ソースを見ても、出てこないんです。

ctrl+Uでソースが見れます。ここに、HTMLとか、JavaScriptとか、まぁ、つまり、ページの情報が全てあるわけです。

普通なら、ここで、例のクリックすると勝手に飛ぶリンク先を、ctrl+Fで検索すれば、ひっかかるはずなんですね。

でも、出てこない。

出てこないもんだから、もうお手上げで。

でも、改めて考えて、わかりました。

推察するに、おそらくJavaScriptで、時間経過後に動的にHTMLを生成するようになっていたんですね。

chromeのソースを見る機能では、ページを読み込んだ状態のソースが表示されるようで、現在の状態のソースではないわけです。

どうりで、一度リロードすると、クリックしても飛ばないようになるわけです。

本当に意地が悪い。

デベロッパーツールを開くか、JavaScriptを解析するかしないと、原因がわからないようになっていたんですね。

解決法

IT

ブックマークレットを使用して、HTMLを動的に変更することによって、クリックでリンクに飛ばされる状態を無効にすることができます。

JavaScript書いたので使ってください。場合によっては買い替えて使用してください。

// おすすめ
$("div").last().attr('style', '');

// こっちでもおk
$("div").last().remove()

ちなみに見てわかるとおりJqueryなので、サイトによっては動作しません。
kissanimeならJquery呼び出してるみたいなので、使えます。
使えなかったら、別途記事”ブックマークレットでjqueryを使う”を参照のほど。

解説

IT

解説をします。

こいつのコードはまず、こういう感じになっています。

<div id="bmh9aru" style="position: fixed; top: 0px; bottom: 0px; left: 0px; right: 0px; z-index: 2147483647; background: black; opacity: 0.01; height: 644px; width: 1593px;"><a id="lk8f5" href="http://www.hicpm10.com/play?bver=1&amp;refer=http%3A%2F%2Fkissanime.ru" target="_blank" style="display: block; height: inherit;"></a></div>

ここで、削除するべきなのは、z-index要素です。
z-indexで、ページの一番上のレイヤーに、HTMLを移動しています。
これさえ無くせば良いわけです。
まぁ、ホントはJavaScript本体を駆逐してやるのが一番なのですが、解析するのも面倒なので…。

では、JavaScript。

まず、これじゃだめでした。

$("#bmh9aru").attr('style', '');

IDを動的に変えられるので、これじゃあ意味がない。

それで、少し調べるとlast()っていうのがあるみたいで。

JavaScriptで生成されたHTMLは、bodyの一番最後に追加されます。なので、last()で削除してやることが一番理にかなっています。

それで、これ。

$("div").last().attr('style', '');

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります!!
この記事は以下の記事とも関連性があると思われます。

Youtubeが超捗る最強chrome拡張機能4選
chromeをリモートログアウトするには
Chromeリモートデスクトップがカクカクで重い原因と解決法
【48個】僕が普段使っているChrome拡張機能全部紹介します。


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu