JavaScriptを使用してiframeへのクリックを検出する


128

iframeクロスドメインの場合、ユーザーが何をしているのかわかりません。私がやりたいのは、ユーザーがでクリックしたかどうかを追跡することですiframe。私は目に見えないがあるシナリオを想像divの上をiframeし、divちょうどそのにクリックイベントを渡しますiframe

このようなことは可能ですか?もしそうなら、それから私はそれについてどうやって行きますか?iframes広告ですので、私は使用されているタグを制御することはできません。


4
それは可能であるとcrossbrowserソリューションがあります:stackoverflow.com/a/32138108/1064513
ドミトリーコーチン

回答:


39

このようなことは可能ですか?

いいえ。できることは、マウスがiframeに入るのを検出することであり、(確実ではありませんが)戻ってきたとき(つまり、途中で広告を通過するポインターと他の場所のポインターの違いを解決しようとすること)です。広告に)。

iframeの上に目に見えないdivがあり、divがクリックイベントをiframeに渡すシナリオを想像します。

いいえ、クリックイベントを偽造する方法はありません。

マウスダウンをキャッチすることで、元のクリックがiframeに到達しないようにします。マウスボタンが押されようとするタイミングを特定できた場合、非表示のdivを邪魔にならないようにして、クリックが通過するようにすることができますが、マウスが押される直前に発生するイベントもありません。

たとえば、ポインタが止まっているかどうかを確認して、クリックが来るかどうかを推測することで、推測を試みることができます。しかし、それは完全に信頼性が低く、失敗した場合は、クリックスルーを失うだけです。


4
はい、そうです。そしてcrossbrowserソリューションがあります:stackoverflow.com/a/32138108/1064513
ドミトリーコーチン

1
これらのリンクを確認したところ、正解だと思います。iframe内のクリックのみを検出できますが、クリックされたものは検出できません。
user568021 2016

それが完全に真実ではないという理由だけで、私は反対票を投じます。あなたが言っていることのほとんどは真実ですが、このスレッドでのより一般的な答えである回避策があります。
newms87

154

これは確かに可能です。これは、Chrome、Firefox、IE 11(およびその他)で機能します。

focus();
var listener = window.addEventListener('blur', function() {
    if (document.activeElement === document.getElementById('iframe')) {
        // clicked
    }
    window.removeEventListener('blur', listener);
});

JSFiddle


警告:これは最初のクリックのみを検出します。私が理解しているように、それはあなたが望むすべてです。


1
@the_joric、それは質問から4年が経過したためで、通常、人々は最初の2つの回答をスクロールしません。
Paul Draper

3
また、ブラウザのタブを変更すると、focus()が発生することにも注意してください。
Linnay 2015年

7
Firefoxでは機能しません。JSFiddleには、これを隠す間違いが含まれています:===の代わりに=。クロスブラウザソリューションがあります(IE8でも):stackoverflow.com/a/32138108/1064513
Dmitry

8
ユーザーが最初にメインドキュメントをクリックしないと、blurイベントは発生しません。また、フォーカスが1つのiframeから別のiframeに変更されたときに発生するblurイベントがないため(iframeのイベントは発生しません)、これは複数のiframeへのクリックの検出には使用できません。
トマーシュカフカ

1
focus()に依存している理由
Prasad Shinde

107

Mohammed Radwanの回答に基づいて、次のjQueryソリューションを思いつきました。基本的には、何がiFrameの人々がホバリングしているのかを追跡することです。次に、ウィンドウがぼやけている場合は、ユーザーがiframeバナーをクリックした可能性が高いです。

ユーザーがクリックしたiframeがわかるように、iframeをID付きのdivに配置する必要があります。

<div class='banner' bannerid='yyy'>
    <iframe src='http://somedomain.com/whatever.html'></iframe>
<div>

そう:

$(document).ready( function() {
    var overiFrame = -1;
    $('iframe').hover( function() {
        overiFrame = $(this).closest('.banner').attr('bannerid');
    }, function() {
        overiFrame = -1
    });

...これにより、iFrameがホバーされない場合はoveriFrameが-1に維持され、iframeがホバーされる場合はラッピングdivに「バナー」が設定されます。次のように、ウィンドウがぼやけたときに 'overiFrame'が設定されているかどうかを確認するだけです。

    $(window).blur( function() {
        if( overiFrame != -1 )
            $.post('log.php', {id:overiFrame}); /* example, do your stats here */
    });
});

マイナーな欠点がある非常にエレガントなソリューション:ユーザーがiFrameの上にマウスを置いたときにALT-F4を押すと、クリックとしてログに記録されます。これはFireFoxでのみ発生しましたが、IE、Chrome、Safariでは登録されませんでした。

Mohammed、非常に便利なソリューションに再度感謝します!


私はこの回答を+1しましたが、次の問題があります。1.複数のiframeがある場合、それらの1つをクリックし、すぐに別のiframeをクリックします-2番目のクリックは検出されません。2. iframe内での複数回のクリックもカウントされません。3.指で「ホバー」イベントを実行できないため、モバイルでは正しく機能しません。
Sych 2015

上記のスクリプトは、私のサイトから離れたクリックを検出するために使用されています。現在、ほとんどの広告ネットワークはフレームでバナーを提供しています。最初にクリックする前にクリックしてからすぐに別のクリックをクリックした場合、技術的には実際にクリックしたラストクリックを知りたいと思っています。だから私の場合、それは望まれる行動です。モバイルバナーのクリックも細かく検出します。したがって、クリックが実行される直前にホバーを起動する必要があります
patrick

iframeのコンテンツにSVG要素の場合には動作しない:( stackoverflow.com/questions/32589735/...
セルゲイ

@Serhiy、それはiframeをクリックしたときに元のページを実際に終了していないためです...
patrick

6
この回答が最適ですが、iframeへのすべてのクリックを受け取りたい場合は、ユーザーがクリックした後にフォーカスを外して、さらにクリックを監視する必要があります。これは$(window).blur()セクションに追加する必要があります:setTimeout(function(){ window.focus(); }, 0);。これで、ユーザーはクリックし、iframeにフォーカスを置き、スクリプトはそのフォーカスを引き戻し、今後のクリックからのフォーカスの変更をさらに監視できるようになりました。
HelpingHand 2016

89

これは、IE8を含むすべてのブラウザーで機能する小さなソリューションです。

var monitor = setInterval(function(){
    var elem = document.activeElement;
    if(elem && elem.tagName == 'IFRAME'){
        clearInterval(monitor);
        alert('clicked!');
    }
}, 100);

ここでテストできます:http : //jsfiddle.net/oqjgzsm0/


1
複数のiframeがあり、それらのIDがわからない場合はどうなりますか?
シャンシェラ2015

1
最新のFFでも機能する、ブラウザーに依存しない信頼できるソリューションのみ!ありがとう。それはより多くの賛成票に値します
BrainOverflow

6
@shankshera elem.idを取得してください。これがiframe IDです。参照してくださいjsfiddle.net/oqjgzsm0/219
トマーシュカフカ

1
私はこれを使用して、ソーシャルのようなボタンのクリックを追跡しています。しかし、私が使用しているものの3/4はiframeを使用しているため、複数のiframeでクリックを追跡する必要があります。それを可能にするためにフィドルを更新しました:jsfiddle.net/oqjgzsm0/273。クリックが最後にクリックされたiframeの外にあるかどうかを確認する新しい間隔を設定します。次に、元の間隔をリセットして、再度クリックをチェックします。同じiframe内での複数のクリックは、その外でのクリックがない限り追跡されません。
brouxhaha 2016

14
別に、このような速度で連続的にループする間隔を使用すると、非常に良いアイデアではないという事実から、これは、Tabキーナビゲーションによるiframeの上のユーザ設定フォーカスの場合偽陽性を検出します
Kaiido

36

次のコードは、ユーザーがクリック/ホバーするか、iframeの外に移動したかどうかを示します。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Detect IFrame Clicks</title>
<script type="text/javascript">
    $(document).ready(function() {
        var isOverIFrame = false;

        function processMouseOut() {
            log("IFrame mouse >> OUT << detected.");
            isOverIFrame = false;
            top.focus();
        }

        function processMouseOver() {
            log("IFrame mouse >> OVER << detected.");
            isOverIFrame = true;
        }

        function processIFrameClick() {
            if(isOverIFrame) {
                // replace with your function
                log("IFrame >> CLICK << detected. ");
            }
        }

        function log(message) {
            var console = document.getElementById("console");
            var text = console.value;
            text = text + message + "\n";
            console.value = text;
        }

        function attachOnloadEvent(func, obj) {
            if(typeof window.addEventListener != 'undefined') {
                window.addEventListener('load', func, false);
            } else if (typeof document.addEventListener != 'undefined') {
                document.addEventListener('load', func, false);
            } else if (typeof window.attachEvent != 'undefined') {
                window.attachEvent('onload', func);
            } else {
                if (typeof window.onload == 'function') {
                    var oldonload = onload;
                    window.onload = function() {
                        oldonload();
                        func();
                    };
                } else {
                    window.onload = func;
                }
            }
        }

        function init() {
            var element = document.getElementsByTagName("iframe");
            for (var i=0; i<element.length; i++) {
                element[i].onmouseover = processMouseOver;
                element[i].onmouseout = processMouseOut;
            }
            if (typeof window.attachEvent != 'undefined') {
                top.attachEvent('onblur', processIFrameClick);
            }
            else if (typeof window.addEventListener != 'undefined') {
                top.addEventListener('blur', processIFrameClick, false);
            }
        }

        attachOnloadEvent(init);
    });
</script>
</head>
<body>
<iframe src="www.google.com" width="100%" height="1300px"></iframe>
<br></br>
<br></br>
<form name="form" id="form" action=""><textarea name="console"
id="console" style="width: 100%; height: 300px;" cols="" rows=""></textarea>
<button name="clear" id="clear" type="reset">Clear</button>
</form>
</body>
</html>

iframe内のsrcを独自のリンクに置き換える必要があります。これがお役に立てば幸いです。よろしく、MO


1
クイックテストに基づくと、(URLを修正した後の)指定された例はIE 8で動作するようですが、Chrome 14.0.835.186 mではある程度信頼できますが、Firefox 6.0.2ではまったく動作しません。
マシューFlaschen

クロームの罰金を動作しますが、インラインフレームをクリックしたときので、FirefoxのV62のために仕事をしませんぼかしイベントがスローされない
slesh

11

ちょうどこの解決策を見つけた...私はそれを試してみました、私はそれが大好きでした。

デスクトップとモバイルのクロスドメインiframeで動作します!

誰にでもできるかどうかまだわからない

window.addEventListener('blur',function(){
      if(document.activeElement.id == 'CrossDomainiframeId'){
        //do something :-)
      }
});

ハッピーコーディング


2
これと同じ答え(多分少し良いバージョン)が1年前のこの同じページに投稿されました:stackoverflow.com/a/23231136/470749
Ryan

5

これは、window要素のblurイベントを使用して実現できます。

以下は、iframeのクリックを追跡するためのjQueryプラグインです(iframeがクリックされたときにカスタムコールバック関数を起動します):https : //github.com/finalclap/iframeTracker-jquery

次のように使用します。

jQuery(document).ready(function($){
    $('.iframe_wrap iframe').iframeTracker({
        blurCallback: function(){
            // Do something when iframe is clicked (like firing an XHR request)
        }
    });
});

5

IEで確実に動作しない長い解決策については、http://jsfiddle.net/Lcy797h2/を参照してください

        $(window).on('blur',function(e) {    
            if($(this).data('mouseIn') != 'yes')return;
            $('iframe').filter(function(){
                return $(this).data('mouseIn') == 'yes';
            }).trigger('iframeclick');    
        });

        $(window).mouseenter(function(){
            $(this).data('mouseIn', 'yes');
        }).mouseleave(function(){
            $(this).data('mouseIn', 'no');
        });

        $('iframe').mouseenter(function(){
            $(this).data('mouseIn', 'yes');
            $(window).data('mouseIn', 'yes');
        }).mouseleave(function(){
            $(this).data('mouseIn', null);
        });

        $('iframe').on('iframeclick', function(){
            console.log('Clicked inside iframe');
            $('#result').text('Clicked inside iframe'); 
        });
        $(window).on('click', function(){
            console.log('Clicked inside window');
            $('#result').text('Clicked inside window'); 
        }).blur(function(){
            console.log('window blur');
        });

        $('<input type="text" style="position:absolute;opacity:0;height:0px;width:0px;"/>').appendTo(document.body).blur(function(){
                $(window).trigger('blur');
            }).focus();

その素晴らしいコーディングマン....実際に私が望んでいるもの... +1 @@ Omar Jackman .. YouTube広告のクリックをキャプチャするのに非常に役立ちます
saun4frsh

4

これはすべてのブラウザー(Firefoxを含む)で動作します

https://gist.github.com/jaydson/1780598

https://jsfiddle.net/sidanmor/v6m9exsw/

var myConfObj = {
  iframeMouseOver : false
}
window.addEventListener('blur',function(){
  if(myConfObj.iframeMouseOver){
    console.log('Wow! Iframe Click!');
  }
});

document.getElementById('idanmorblog').addEventListener('mouseover',function(){
   myConfObj.iframeMouseOver = true;
});
document.getElementById('idanmorblog').addEventListener('mouseout',function(){
    myConfObj.iframeMouseOver = false;
});
<iframe id="idanmorblog" src="https://sidanmor.com/" style="width:400px;height:600px" ></iframe>

<iframe id="idanmorblog" src="https://sidanmor.com/" style="width:400px;height:600px" ></iframe>


3

Mohammed Radwan、あなたのソリューションはエレガントです。FirefoxとIEでiframeのクリックを検出するには、document.activeElementとタイマーを使用する簡単な方法を使用できますが、ChromeとSafariでiframeのクリックを検出する方法をインターネット全体で検索しました。あきらめる寸前で、私はあなたの答えを見つけます。ありがとうございます!

ヒント:attachOnloadEvent()ではなくinit()関数を直接呼び出す方が、ソリューションの信頼性が高いことがわかりました。もちろん、これを行うには、iframe htmlの後でのみinit()を呼び出す必要があります。したがって、次のようになります。

<script>
var isOverIFrame = false;
function processMouseOut() {
    isOverIFrame = false;
    top.focus();
}
function processMouseOver() { isOverIFrame = true; }
function processIFrameClick() {
    if(isOverIFrame) {
    //was clicked
    }
}

function init() {
    var element = document.getElementsByTagName("iframe");
    for (var i=0; i<element.length; i++) {
        element[i].onmouseover = processMouseOver;
        element[i].onmouseout = processMouseOut;
    }
    if (typeof window.attachEvent != 'undefined') {
        top.attachEvent('onblur', processIFrameClick);
    }
    else if (typeof window.addEventListener != 'undefined') {
        top.addEventListener('blur', processIFrameClick, false);
    }
}
</script>

<iframe src="http://google.com"></iframe>

<script>init();</script>

3

これを行うと、イベントを親ドキュメントにバブリングできます。

$('iframe').load(function() {
    var eventlist = 'click dblclick \
                    blur focus focusin focusout \
                    keydown keypress keyup \
                    mousedown mouseenter mouseleave mousemove mouseover mouseout mouseup mousemove \
                    touchstart touchend touchcancel touchleave touchmove';

    var iframe = $('iframe').contents().find('html');

    // Bubble events to parent
    iframe.on(eventlist, function(event) {
        $('html').trigger(event);
    });
});

イベントリストを拡張して、さらに多くのイベントを表示します。


「touchend」イベントを使用しましたが、うまくいきました!あなたの答えは私を大いに助けました!

3

iframeを通じてプルされたソーシャルメディアボタンのクリックを追跡しなければならない状況に遭遇しました。ボタンをクリックすると、新しいウィンドウが開きます。これが私の解決策です:

var iframeClick = function () {
    var isOverIframe = false,
    windowLostBlur = function () {
        if (isOverIframe === true) {
            // DO STUFF
            isOverIframe = false;
        }
    };
    jQuery(window).focus();
    jQuery('#iframe').mouseenter(function(){
        isOverIframe = true;
        console.log(isOverIframe);
    });
    jQuery('#iframe').mouseleave(function(){
        isOverIframe = false;
        console.log(isOverIframe);
    });
    jQuery(window).blur(function () {
        windowLostBlur();
    });
};
iframeClick();

3

http://jsfiddle.net/QcAee/406/

クリックすると元に戻り、マウスリーブイベントが発生すると上に移動するiframeの上に非表示のレイヤーを作成するだけです。
jQueryが必要

このソリューションは、iframe内の最初のクリックを伝播しません!

$("#invisible_layer").on("click",function(){
		alert("click");
		$("#invisible_layer").css("z-index",-11);

});
$("iframe").on("mouseleave",function(){
		$("#invisible_layer").css("z-index",11);
});
iframe {
    width: 500px;
    height: 300px;
}
#invisible_layer{
  position: absolute;
  background-color:trasparent;
  width: 500px;
  height:300px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="message"></div>
<div id="invisible_layer">

</div>
<iframe id="iframe" src="//example.com"></iframe>


1

これは、iframeが親サイトと同じドメインのものである場合に確実に機能します。クロスドメインサイトではテストしていません。

$(window.frames['YouriFrameId']).click(function(event){  /* do something here  */ });
$(window.frames['YouriFrameId']).mousedown(function(event){ /* do something here */ });
$(window.frames['YouriFrameId']).mouseup(function(event){ /* do something here */ });

jQueryがなければ、このようなことを試すことができますが、ここでも試していません。

window.frames['YouriFrameId'].onmousedown = function() { do something here }

結果をフィルタリングすることもできます。

$(window.frames['YouriFrameId']).mousedown(function(event){   
  var eventId = $(event.target).attr('id');      
  if (eventId == 'the-id-you-want') {
   //  do something
  }
});

1

上記の回答と、iframeの外側をクリックせずに何度もクリックする機能を組み合わせます。

    var eventListener = window.addEventListener('blur', function() {
    if (document.activeElement === document.getElementById('contentIFrame')) {
        toFunction(); //function you want to call on click
        setTimeout(function(){ window.focus(); }, 0);
    }
    window.removeEventListener('blur', eventListener );
    });

1

すべてのクリックをキャッチできます。アイデアは、クリックするたびにiFrameの外側の要素にフォーカスをリセットすることです。

    <input type="text" style="position:fixed;top:-1000px;left:-1000px">
    <div id="message"></div>
    <iframe id="iframe" src="//example.com"></iframe>
    <script>
        focus();
        addEventListener('blur', function() {
            if(document.activeElement = document.getElementById('iframe')) {
                message.innerHTML += 'Clicked';
                setTimeout(function () {
                    document.querySelector("input").focus();
                    message.innerHTML += ' - Reset focus,';
                }, 1000);
            }  
        });
    </script>

JSFiddle


0

私はあなたが次のようなことができると信じています:

$('iframe').contents().click(function(){function to record click here });

jQueryを使用してこれを実現します。


0

そこにあるように: JavaScriptを使用してiframeへのクリックを検出する

=> iframeTracker-jqueryを使用できます:

$('.carousel-inner .item').each(function(e) {
    var item = this;
    var iFrame = $(item).find('iframe');
    if (iFrame.length > 0) {
        iFrame.iframeTracker({
            blurCallback: function(){
                // Do something when iFrame is clicked (like firing an XHR request)
                onItemClick.bind(item)(); // calling regular click with right context
                console.log('IFrameClick => OK');
            }
        });
        console.log('IFrameTrackingRegistred => OK');
    }
})

0

Paul Draperの回答に基づいて、ブラウザーで他のタブを開くiframeがある場合に継続的に機能するソリューションを作成しました。フレームワーク上でのクリックを検出するためにページをアクティブのままに戻すと、これは非常に一般的な状況です。

          focus();
        $(window).blur(() => {
           let frame = document.activeElement;
           if (document.activeElement.tagName == "IFRAME") {
             // Do you action.. here  frame has the iframe clicked
              let frameid = frame.getAttribute('id')
              let frameurl = (frame.getAttribute('src'));
           }            
        });

        document.addEventListener("visibilitychange", function () {
            if (document.hidden) {

            } else {
                focus();
            }
        });

コードはシンプルで、iframeがクリックされたときにフォーカスが失われたことをblurイベントが検出し、アクティブな要素がiframeであるかどうかをテストします(複数のiframeがある場合、誰が選択されたかを知ることができます)。この状況は、宣伝フレームがある場合によく起こります。 。

2番目のイベントは、ページに戻ったときにフォーカスメソッドをトリガーします。可視性変更イベントを使用します。


0

これは、ホバー+ブラーとアクティブエレメントトリックを使用した推奨アプローチを使用したソリューションです。ライブラリではなく、純粋なjsです。FF / Chromeで正常に動作します。ほとんどのアプローチは@Mohammed Radwanと同じですが、@ zone117xによって提案された別の方法を使用してFFのiframeクリックを追跡しますが、ユーザー設定を追加しないとwindow.focusが機能しないためです

窓を前面に出すように要求します。ユーザー設定が原因で失敗する可能性があり、このメソッドが戻る前にウィンドウが最前面にあるとは限りません。

これが複合メソッドです:

function () {
    const state = {};

    (function (setup) {
        if (typeof window.addEventListener !== 'undefined') {
            window.addEventListener('load', setup, false);
        } else if (typeof document.addEventListener !== 'undefined') {
            document.addEventListener('load', setup, false);
        } else if (typeof window.attachEvent !== 'undefined') {
            window.attachEvent('onload', setup);
        } else {
            if (typeof window.onload === 'function') {
                const oldonload = onload;
                window.onload = function () {
                    oldonload();
                    setup();
                };
            } else {
                window.onload = setup;
            }
        }
    })(function () {
        state.isOverIFrame = false;
        state.firstBlur = false;
        state.hasFocusAcquired = false;

        findIFramesAndBindListeners();

        document.body.addEventListener('click', onClick);

        if (typeof window.attachEvent !== 'undefined') {
            top.attachEvent('onblur', function () {
                state.firstBlur = true;
                state.hasFocusAcquired = false;
                onIFrameClick()
            });
            top.attachEvent('onfocus', function () {
                state.hasFocusAcquired = true;
                console.log('attachEvent.focus');
            });
        } else if (typeof window.addEventListener !== 'undefined') {
            top.addEventListener('blur', function () {
                state.firstBlur = true;
                state.hasFocusAcquired = false;
                onIFrameClick();
            }, false);
            top.addEventListener('focus', function () {
                state.hasFocusAcquired = true;
                console.log('addEventListener.focus');
            });
        }

        setInterval(findIFramesAndBindListeners, 500);
    });

    function isFF() {
        return navigator.userAgent.search(/firefox/i) !== -1;
    }

    function isActiveElementChanged() {
        const prevActiveTag = document.activeElement.tagName.toUpperCase();
        document.activeElement.blur();
        const currActiveTag = document.activeElement.tagName.toUpperCase();
        return !prevActiveTag.includes('BODY') && currActiveTag.includes('BODY');
    }

    function onMouseOut() {
        if (!state.firstBlur && isFF() && isActiveElementChanged()) {
            console.log('firefox first click');
            onClick();
        } else {
            document.activeElement.blur();
            top.focus();
        }
        state.isOverIFrame = false;
        console.log(`onMouseOut`);
    }

    function onMouseOver() {
        state.isOverIFrame = true;
        console.log(`onMouseOver`);
    }

    function onIFrameClick() {
        console.log(`onIFrameClick`);
        if (state.isOverIFrame) {
            onClick();
        }
    }

    function onClick() {
        console.log(`onClick`);
    }

    function findIFramesAndBindListeners() {
        return Array.from(document.getElementsByTagName('iframe'))
            .forEach(function (element) {
                element.onmouseover = onMouseOver;
                element.onmouseout = onMouseOut;
            });
    }
}

0

仮定 -

  1. スクリプトはiframeの外側で実行されますが、一番外側のwindow.topウィンドウでは実行されません。(最も外側のウィンドウについては、他のぼかしソリューションで十分です)
  2. 現在のページ/新しいタブの新しいページを置き換える新しいページが開かれ、コントロールが新しいタブに切り替わります。

これはソースフルとソースレスの両方のiframeで機能します

var ifr = document.getElementById("my-iframe");
var isMouseIn;
ifr.addEventListener('mouseenter', () => {
    isMouseIn = true;
});
ifr.addEventListener('mouseleave', () => {
    isMouseIn = false;
});
window.document.addEventListener("visibilitychange", () => {
    if (isMouseIn && document.hidden) {
        console.log("Click Recorded By Visibility Change");
    }
});
window.addEventListener("beforeunload", (event) => {
    if (isMouseIn) {
        console.log("Click Recorded By Before Unload");
    }
});

新しいタブが開かれる/同じページがアンロードされ、マウスポインターがiframe内にある場合、クリックが考慮されます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.