ユーザーがTChromium内で何回クリックしたかをトラッキングしたい。彼が「空白」/リンク/ボタン/画像/などでクリックするかどうかは気にしません。彼が何回クリックしたか知りたいだけです。私はTChromiumにOnclickイベントがあることを望んでいたが、誰もいなかった。ユーザーがクリックした場合、どうすればわかりますか?TChromium OnClick
答えて
イベントリスナーを追加できます。ここで問題となるのは、CEF3はCEF1のようなDOMイベントリスナーをサポートしていないため、簡単ではありません(不可能ではありません)。 V8インタラクションの例を作成しようとする前に、かなり汚い回避策があります。一意の十分な文字列を作成し、ドキュメント全体のイベントリスナーを追加します。このイベントでは、その一意の文字列でメッセージを記録します。 Delphiでは、一意のログメッセージを待つことになります。例:
const
MyClickMessage = '08B52B44-748F-44BB-AC6C-5179D6C1F523';
procedure TForm1.Chromium1LoadEnd(Sender: TObject; const browser: ICefBrowser;
const frame: ICefFrame; httpStatusCode: Integer);
begin
if frame.IsMain then
frame.ExecuteJavaScript(
'document.addEventListener("click", function(evnt){' +
'console.log("' + MyClickMessage + '");' +
'});',
'',
0);
end;
procedure TForm1.Chromium1ConsoleMessage(Sender: TObject; const browser: ICefBrowser;
const message, source: ustring; line: Integer; out Result: Boolean);
begin
if message = MyClickMessage then
begin
Result := True;
ShowMessage('User clicked!');
end;
end;
ハッキー、右:?私は何か良い(V8エンジンを使って)何かを思いついてみよう。
ユーザーが非応答(href、ボタン、イメージなど)領域でウェブページをクリックしているときにこれは機能しますか? – RBA
@RBA、should。しかし、私のコードでは、私はメインフレームにのみイベントを束縛し、バブリングを防止していません。それはまずいです。 – Victoria
@RBA、もしあなたがJavaScriptを使うことができれば、あなたにV8実装を提供することができます。私は、文書全体のグローバルクリックフックを作成する方法(イベントのバブリングを止め、元の機能を維持する方法)を知りません。私はJavaScriptがうまくいきません。 – Victoria
- 1. TChromiumをアンチエイリアスでレンダリングする
- 2. LoadURL on TChromiumでエラーが発生しました
- 3. TChromiumでEditorModeを有効にする方法は?
- 4. TChromium、Delphi Chromiumを使用する埋め込み
- 5. TChromiumコンポーネントのデフォルトの背景色を変更するには?
- 6. TChromiumのスクロールバーを非表示にするには
- 7. onclickまたはonClick?
- 8. TChromiumスクロールバーの位置を取得および設定する方法は?
- 9. Button onclick = "onclick()" throws最大スタックエラー
- 10. RecyclerView行onClickと子ボタンonClick
- 11. onClickとDOMとonClickハードコード
- 12. onclickの場合、 `onclick =" confirmOnSubmit() `vs` onclick = "confirmOnSubmit`を使用する場合
- 13. OnClick ViewFlipperを使用したOnClick ImageView
- 14. プリファレンスonClick
- 15. プロトタイプボタンonClick
- 16. カラーテーブルセルonclick
- 17. OnClick restartActivity?
- 18. のOnClick
- 19. OnClientClick OnClick
- 20. @OnClickが
- 21. ギャラリーonClick
- 22. onclickイベント
- 23. onClick GlSufaceView
- 24. Unity OnClick()
- 25. のonClick
- 26. onClickボタンクラッシュ
- 27. のonClick
- 28. スライドパネルonClick
- 29. リセットボタン - バックスペースOnClick
- 30. モバイルjquery onclick
これは文書にもある。私はすぐに戻るよ... – Victoria
私はあなたがマウスボタンをフックする必要があると思う。それ以外の場合は、何も起こりえない領域をクリックするとTChromiumが気になる理由はわかりません。 – RBA
@RBA、JavaScriptのFlashなどのコンテナにクリックを聴くことはできないと思うので、あなたは正しいと思います。 – Victoria