gpt4 book ai didi

javascript - 鼠标离开窗口提醒弹出--Moodle

转载 作者:行者123 更新时间:2023-12-03 07:43:59 25 4
gpt4 key购买 nike

我使用 PHP 编写的 Moodle 软件开发了在线考试。现在,我想通过生成鼠标悬停弹出窗口来限制参加测试的人员无法导航到其他选项卡或其他窗口。

以下是我有一个用户离开窗口时弹出警报的代码:

<html>
<head>
<script type="text/javascript">
function addEvent(obj, evt, fn) {
if (obj.addEventListener) {
obj.addEventListener(evt, fn, false);
}
else if (obj.attachEvent) {
obj.attachEvent("on" + evt, fn);
}
}
addEvent(window,"load",function
(e)
{
addEvent(document, "mouseout", function
(e)
{
e = e ? e : window.event;
var from = e.relatedTarget || e.toElement;
if (!from || from.nodeName == "HTML") {
// stop your drag event here
// for now we can just use an alert
alert("Your Test will close in 10 secs unless you return to the page ");
}
});
});
</script>
</head>
<body></body>
</html>

是否有可能使用此代码限制用户,并且在这种情况下将此代码附加到moodle的实际源代码中?

谢谢。

最佳答案

不知道我是否正确理解了您的要求,但我尝试重新创建场景...请检查下面的 jsfiddle (我使用过 jQuery 和 jQuery UI)

HTML

 <div class="exam">
SOME TEXT
</div>

<div id="dialog" title="Basic dialog">
<p>Your Test will close in <span class="time"></span> secs unless you return to the page</p>
</div>

CSS

 body {
font-family: "Trebuchet MS", "Helvetica", "Arial", "Verdana", "sans-serif";
font-size: 62.5%;
}

.exam {
height: 500px;
width: 100%;
border: 1px solid #ccc;
background: #549bed;
}

JQUERY

    $(document).ready(function() {
$('.exam').on('mouseout', function() {

$("#dialog").dialog("open");
// loop time
$('.time').text('10');
(function myLoop(i) {

setTimeout(function() {

// To check whether OK button on dialog was clicked
$('.ui-dialog-buttonset').click(function() {

$(this).data('clicked', true);
});

// To check whether 'X' button on dialog was clicked
$('.ui-dialog-titlebar-close').click(function() {

$(this).data('clicked', true);
});

// storing button click status
var clckd = $('.ui-dialog-buttonset').data('clicked');
var xclckd = $('.ui-dialog-titlebar-close').data('clicked');
console.log(clckd);

// exiting the loop if 'OK' or 'X' button is clicked
if (clckd || xclckd) {
$('.ui-dialog-buttonset').data('clicked', false); // resetting 'OK' button status
$('.ui-dialog-titlebar-close').data('clicked', false); // resetting 'X' button status
return;

}
if (--i) myLoop(i);
$('.time').text(i); // decrement i and call myLoop again if i > 0

// If user has not come back
if (i == 0) {
alert('sorry exam closed'); //code for ending exam
}

}, 1000)

})(10);

// End loop time



});



$('.exam').on('mouseenter', function() {

$("#dialog").dialog("close");
$('.time').text('10');
});

$(function() {
$("#dialog").dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
},
modal: true,
buttons: {
Ok: function() {
$(this).dialog("close");
}
}
}); // dialog.dialog
}); // function dialog
}); // Document ready

https://jsfiddle.net/7oec0v5t/2/

关于javascript - 鼠标离开窗口提醒弹出--Moodle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35285501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com