首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停用javascript中的函数

如何停用javascript中的函数
EN

Stack Overflow用户
提问于 2017-10-03 06:17:44
回答 1查看 53关注 0票数 0

我有一个javascript函数,当不再需要它时,我希望能够将其关闭。它被称为“锁定”,防止学生在参加测验时浏览到其他网站。如果他们真的试图去其他地方,他们会被发送到一个不同的URL,该URL会说他们违反了“锁定”规则。

当功能"lockdown“被激活时,名为"locked”的变量被设置为"1“,这导致该功能被激活。

现在,我有时想停止"lockdown“函数,所以我创建了另一个名为"stoplockdown”的函数,它将"locked“变量更改为一个不同的数字。这似乎应该会停止函数的执行,因为有一个"if“子句,它依赖于"locked”是"1“。因此,如果"locked“不是"1",则其他事件将不会发生。

我可以成功地从另一个程序调用" lockdown“和"stoplockdown”,但"stoplockdown“不会关闭锁定功能。下面是javascript:

代码语言:javascript
复制
<!--lockdown and stop lockdown--->

<script>
<!--declare variable outside of function to give it a global scope--->
var locked=2;


function lockdown(){
locked=1;
alert(locked);
if(locked==1){
// next event prevents resizing or starting with small window to allow for split screen cheating in lockdown mode.
if (window.outerHeight<screen.availHeight || window.outerWidth<screen.availWidth) {
window.location.href = 
'https://quizninja.net/lockdown.html';
}
window.addEventListener("resize", resized);
function resized(){
window.location.href = 
'https://quizninja.net/lockdown.html';
}
// previous event prevents resizing or starting with small window window to allow for split screen cheating in lockdown mode.

// next event redirects to another page if quiz loses focus

  window.onblur = function (){
  window.location.href = 
'https://quizninja.net/lockdown.html';
}
}
}

 // to make it complete, also add onblur to document.
// For browsers using tabs (like firefox)
document.onblur = window.onblur;
document.focus = window.focus;

//stop lockdown
function stoplockdown(){
locked=0;
alert(locked);
}

</script>


<!-- javascript function to close window if not in focus for lockdown browser mode ENDS...-->
e

为什么这个不起作用?我对javascript还是个新手,一般来说,我不是一个专业的程序员。看起来"locked“应该有一个全局作用域,但是当你改变"lockdown”函数的"if“子句的值时,它似乎不会改变。如有任何建议,我们将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-03 06:22:59

locked实际上并没有做任何事情,因为您将其设置为1,然后立即检查它是否等于1。

然后创建一个事件侦听器-当您更改locked的值时,该事件侦听器仍然存在。您需要将其删除或检查事件侦听器本身中的locked值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46534527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档