Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以停止JavaScript执行?_Javascript - Fatal编程技术网

是否可以停止JavaScript执行?

是否可以停止JavaScript执行?,javascript,Javascript,是否有可能以某种方式停止或终止,以防止任何进一步的基于JavaScript的执行发生,而无需重新加载浏览器 我正在考虑一种与PHP中的exit()但这不会停止调用该函数的父函数的执行。类似的操作可能会起作用: function javascript_abort() { throw new Error('This is not an error. This is just to abort javascript'); } 摘自这里: 简短回答: throw new Error("Somet

是否有可能以某种方式停止或终止,以防止任何进一步的基于JavaScript的执行发生,而无需重新加载浏览器


我正在考虑一种与PHP中的
exit()但这不会停止调用该函数的父函数的执行。

类似的操作可能会起作用:

function javascript_abort()
{
   throw new Error('This is not an error. This is just to abort javascript');
}
摘自这里:

简短回答:

throw new Error("Something went badly wrong!");
如果你想知道更多,继续阅读


是否要停止JavaScript的执行以进行开发/调试? 表达式
调试器将停止页面执行,然后浏览器的开发工具将允许您查看页面冻结时的状态

你想随意地、故意地停止你的应用程序吗? 错误? 让您的代码处理错误,而不是试图停止所有操作。通过谷歌搜索了解有关异常的信息。它们是一种让代码“跳转”到错误处理过程的聪明方法,而无需使用冗长的if/else块

在阅读了它们之后,如果您认为中断整个代码绝对是唯一的选择,那么抛出一个除了应用程序的“根”范围之外不会在任何地方被“捕获”的异常就是解决方案:

// creates a new exception type:
function FatalError(){ Error.apply(this, arguments); this.name = "FatalError"; }
FatalError.prototype = Object.create(Error.prototype);

// and then, use this to trigger the error:
throw new FatalError("Something went badly wrong!");
确保没有捕获任何异常的
catch()
块;在这种情况下,修改它们以重新显示您的
“FatalError”
异常:

当任务完成或发生任意事件时?
返回将终止当前函数的执行流

if(someEventHappened) return; // Will prevent subsequent code from being executed
alert("This alert will never be shown.");
注:
返回仅在函数内工作

在这两种情况下。。。
…您可能还想知道如何停止异步代码。一切都结束了。最后,要停止()请求,您可以使用
xhrObj.abort()
方法(在中也可用)。

您可以在函数的早期调用
return
,至少该函数将停止运行。您也可以使用
抛出“”
来引起错误并停止当前进程。但这些并不能阻止一切
setTimeout
setInterval
可以分别生成延迟函数和按时间间隔运行的函数。这些将继续运行。Javascript事件也将一如既往地工作。

这个过程很乏味,但在Firefox中:

  • 打开空白选项卡/窗口,为脚本创建新环境 从当前页面
  • 使用要执行的脚本填充新环境
  • 在新环境中激活脚本
  • 关闭(即杀死)新环境以
  • 停止或终止JavaScript,以防止进一步的错误 基于JavaScript的执行不会发生,无需重新加载浏览器

    注:

    • 步骤4只停止在该环境中执行JavaScript,而不停止任何其他窗口的脚本
    • 不会重新加载原始页面,但会使用脚本加载新的选项卡/窗口
    • 当一个选项卡/窗口关闭时,该环境中的所有内容都消失了:所有残余、部分结果、代码等
    • 结果必须迁移回父窗口或其他窗口进行保存
    • 要重新运行代码,必须重复上述步骤
    其他浏览器有并使用不同的约定。


    即使抛出异常,也只会终止当前事件循环。传递给setTimeout或DOM/XMLHttpRequest事件处理程序的回调在其时间到来时仍将运行。

    在JavaScript函数中定义一个变量,如果要执行该函数,请将该变量设置为1;如果要停止该函数,请将其设置为0

    var execute;
    function do_something()
    {
    if (execute == 1)
    {
    // execute your function
    }
    else
    {
     // do nothing
    }
    }
    
    我正在使用

    返回false


    如果我想中止JavaScript的向下运行。

    您可以将JavaScript键入:D(在这里跳出框思考)

    或者类似于:

    new new
    

    我知道这很老了,但我想这么做,我发现,在我看来,抛出答案的解决方案稍微有点改进。只需暂时抑制错误消息,然后使用setTimeout重新激活它们:

    setTimeout(function() {
        window.onerror = function(message, url, lineNumber) {  
            return false;
        };
    }, 50); // sets a slight delay and then restores normal error reporting
    window.onerror = function(message, url, lineNumber) {  
        return true;
    };
    throw new Error('controlledError');
    
    我有:


    这样,我有5秒钟的时间与UI交互,然后停止。我上次使用的时候,我需要让自定义工具提示保持可见,以便对样式进行一些更改。

    return-在一个functionDup的
    调试器中
    冻结页面的所有javascript循环。非常有助于消除恼人的javascript,尤其是当页面需要加载javascript时。这是ECMA标准的一部分还是浏览器扩展?你的意思是js中已经存在此功能,还是必须添加它?如果是这样的话,您必须将它添加到您想从中调用它的任何范围中。我指的是
    Error
    对象。这可以告诉您关于它的更多信息:注意:所有剩余的异步函数,如
    setTimeout
    XMLHttpRequest
    仍将执行。目前还没有完全终止JavaScript的标准方法。如果您需要停止整个JS进程以进行调试,请使用Webkit中的开发者工具或Firefox上的Firebug通过执行
    调试器设置断点。这将完全停止一切执行。@gattsbr这是否仍然会导致下一行立即执行?+1用于
    调试器语句<代码>返回
    外部函数产生语法错误(只是为了让浏览者明白)。有这么多的方面需要考虑…我只是成功地接受了我不想用
    if(false){…}
    执行的部分。所以你不必关心嵌套的注释。@Derek朕會功夫
    debugger
    非常适合在出现大量异步内容时停止加载页面,但如果可以去掉半透明的灰色覆盖层,就更好了
    new new
    
    setTimeout(function() {
        window.onerror = function(message, url, lineNumber) {  
            return false;
        };
    }, 50); // sets a slight delay and then restores normal error reporting
    window.onerror = function(message, url, lineNumber) {  
        return true;
    };
    throw new Error('controlledError');
    
    setTimeout(function() { debugger; }, 5000)