ファーストはかなり厳しい制限があります。Mousemovement対インラインフレーム - または:親子の競合すべての私のプロジェクトの
- オフライン可用性可能
=> PHPとして
構造:
- index.htmlを
- frame.html
のindex.htmlが含ま:
- 秒imple IFRAME:
< IFRAME幅= "100%" 高さ= "100%" SRC = "frame.html" FRAMEBORDER = "0">
</iframe>の
-
マウスの右クリックを無効にする
- のJavaScript:
<スクリプト言語= "javascriptの"> document.onmousedo wn = disableclick;
status = "右クリック無効";関数disableclick(イベント){
if(event.button == 2){
alert( "TEST");
falseを返します。 }}
ユーザがアクティブでないときを検出するための< /スクリプト>
- 別のJavaScript:
<スクリプト>変数のtimeoutIDは。関数セットアップ(){
this.addEventListener( "mousemove"、resetTimer、false);
this.addEventListener( "mousedown"、resetTimer、false);
this.addEventListener( "keypress"、resetTimer、false);
this.addEventListener( "DOMMouseScroll"、resetTimer、false);
this.addEventListener( "mousewheel"、resetTimer、false);
this.addEventListener( "touchmove"、resetTimer、false);
this.addEventListener( "MSPointerMove"、resetTimer、false);>
startTimer(); } セットアップ(); function startTimer(){
// goInactiveを呼び出す前にX秒待つ
timeoutID = window。setTimeout(goInactive、3000); }関数resetTimer(e){
window.clearTimeout(timeoutID);
goActive(); }関数goInactive(){
//何かを行う
alert( "TIMEOUT");
falseを返します。 } function goActive(){
//何かを行う
startTimer(); }
CSSファイルはまた、マウスカーソルのいくつかの制限が含ま>
- < /スクリプト:
本体{
背景色:#1 f0f0f0。
カーソル:なし!重要;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;ユーザー選択:なし;
}
=>これはindex.htmlのために非常によく動作します - ではなく、現時点では、同じディレクトリ内のローカルファイルであるIFRAME(のために、また、上でリンクすることができるはずウェブサイト)。
は、私はいくつかの回避策を試してみましたが、(あなたもframe.htmlの内容を閲覧することができるように)生きiframe内のウェブサイトを維持しながら、それらのどれもを働きました。
私は、スクリプトを子に渡した場合、または子が親またはオーバーレイソリューションからスクリプトを取得した場合、どのようなソリューションにも公開されています。 同じディレクトリにあるオフラインファイルのiframeリダイレクトを回避する方法がある場合は、最初の段階で問題ありません。
ありがとうございます!
EDIT:
はまだこれで問題だ - それはネバーエンディングループに来る:私はjQueryを使ってこれを行っている
$('iframe').load(function(){
$(this).contents().find("body").mousemove(function(){
var timeoutID;
function setup() {
this.addEventListener("mousemove", resetTimer, false);
this.addEventListener("mousedown", resetTimer, false);
this.addEventListener("keypress", resetTimer, false);
this.addEventListener("DOMMouseScroll", resetTimer, false);
this.addEventListener("mousewheel", resetTimer, false);
this.addEventListener("touchmove", resetTimer, false);
this.addEventListener("MSPointerMove", resetTimer, false);
startTimer();
}
setup();
function startTimer() {
timeoutID = (this).setTimeout(goInactive, 4000);
}
function resetTimer(e) {
(this).clearTimeout(timeoutID);
goActive();
}
function goInactive() {
alert("TIMEOUT");
return false;
goactive;
}
function goActive() {
startTimer();
}
});
});
$('iframe').attr("src","JavaScript:'iframe content'");
あなたはいつもiframe内のページを制御できますか、または任意のページを埋め込むでしょうか? あなたが関心のあるイベントリスナーをフレームに配置する必要がありますが、その内容を制御できる場合にのみ行うことができます。 – kar288
返信いただきありがとうございます。現時点では、iframeのページを完全に管理しています。しかし、将来の目的のために、外国のウェブサイト上のリンクも素晴らしいでしょう。 現在、タイムアウトはアラートにのみ関連付けられています。しかし、私は、ウェブサイトを(親サイトの)開始ページにジャンプさせたいと思っています。 frame.htmlにスクリプトを実装することで、これはどのように可能ですか? –
もう一つの解決策はもちろんiframeを削除することですが、PHPが動作していないので、どのようにして...? –