首先,我的项目有很严格的限制:
=> PHP和其他语言不是一个选项 - 只有html和javascript。
结构:
index.html包含:
< iframe width =“100%”height =“100%”src =“frame.html”frameborder =“0”>
< / IFRAME>
< script language =“javascript”> document.onmousedown = disableclick;
status =“右键单击已禁用”; function disableclick(event){
if(event.button == 2){
警报( “TEST”);
返回false; }< /脚本>
<脚本> var 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); } function resetTimer(e){
window.clearTimeout(timeoutID);
的goActive();函数goInactive(){
//做点什么 警报( “超时”);
返回false;函数goActive(){
//做点什么 startTimer所(); }
< /脚本>
身体{
background-color:#f0f0f0;
光标:无!重要;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none; user-select:none;
}
=>这对于index.html非常有效 - 但不适用于iframe(目前这是同一目录中的本地文件,但它也应该能够在网站上链接)。
我尝试了几种解决方法,但是没有一个工作方法同时保持网站在iframe中(这样你也可以浏览frame.html的内容)。
我对任何解决方案持开放态度 - 如果它将脚本交给孩子,或者孩子从父母或任何覆盖解决方案获取脚本。 如果iframe重定向在同一目录中的脱机文件上有解决方法 - 这在第一时间就可以了。
非常感谢你!
修改
仍然遇到问题 - 这是一个无休止的循环:
$('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'");