0

Chromiumブラウザ環境でのみ実行する必要があるカプチーノフレームワークに基づくWebアプリケーションを開発している間(〜クロムV.19は今年の春にリリースされました)、次の問題に苦労しています:

アプリケーションがすべてのマウス クリックを数秒間ロックまたは削除するようにします (アプリケーションがバックグラウンドで計算を実行している間)。

この一見単純な作業はほとんど不可能に思えます。画面全体に Html- レイヤーを実装し、マウスアップ、マウスダウン ハンドラーを次のように操作しようとしました。

onmouseup="false を返す;"

onmousedown="false を返す;"

しかし、それは結果を示しませんでした。

また、実際のカプチーノ ウィンドウ ビューのすべての CPControl サブビューを反復し、それらを無効にします。

[サブビュー setEnabled:いいえ];

本当に役に立ちません:

その後、実際にサブビューは無効になります(正確にはクリックできません)が、遅すぎます:バックグラウンドタスクを開始する前にそれらを無効にしましたが、無効化効果はバックグラウンドタスクが終了した後に有効になり、そうではありません賢明な計算中にユーザーが愚かなクリックをするのを防ぎます。

次のようなコードも実装しようとしました

[CPRunLoop limitDateForMode:CPDefaultRunLoopMode];

CPControlsを無効にした後、バックグラウンドタスクを開始する前ですが、それも機能しません。

Javascript-/Html または Cappuccino 側のアイデアはありますか? 前もって感謝します。

4

1 に答える 1

1

CPWindow にはメソッドがあります: setIgnoresMouseEvents: ウィンドウでそれを呼び出すだけです。

于 2012-12-09T00:54:24.843 に答える