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

我正在考虑在PHP中等价于exit()的JavaScript。


当前回答

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

打开一个空白选项卡/窗口,为脚本创建一个新环境 从当前页面 用要执行的脚本填充新环境 在新环境中激活脚本 关闭(即消灭)新环境……

停止或终止JavaScript this[以]一种[方式]阻止[s]任何进一步 基于javascript的执行,无需重新加载浏览器

注:

步骤4只停止该环境中JavaScript的执行,而不会停止任何其他窗口的脚本 原来的页面不会被重新加载,但是一个新的选项卡/窗口会被脚本加载 当一个选项卡/窗口关闭时,该环境中的所有东西都消失了:所有残留,部分结果,代码等。 结果必须迁移回父窗口或另一个窗口进行保存 要重新运行代码,必须重复上述步骤

其他浏览器具有并使用不同的约定。

其他回答

你可以在函数中提前调用return,至少该函数会停止运行。您也可以使用throw "来引起错误并停止当前进程。但这些并不能阻止一切。setTimeout和setInterval可以分别创建延迟函数和按时间间隔运行的函数。这些将继续运行。Javascript事件也将继续正常工作。

在JavaScript函数中定义一个变量,如果你想执行这个函数,将这个变量设置为1,如果你想停止它,将它设置为0

var execute;
function do_something()
{
if (execute == 1)
{
// execute your function
}
else
{
 // do nothing
}
}

你可以做一个JavaScript错别字:D(跳出框框思考)

thisFunctionDoesNotExistAndWasCreatedWithTheOnlyPurposeOfStopJavascriptExecutionOfAllTypesIncludingCatchAndAnyArbitraryWeirdScenario();

或者像这样:

new new

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

打开一个空白选项卡/窗口,为脚本创建一个新环境 从当前页面 用要执行的脚本填充新环境 在新环境中激活脚本 关闭(即消灭)新环境……

停止或终止JavaScript this[以]一种[方式]阻止[s]任何进一步 基于javascript的执行,无需重新加载浏览器

注:

步骤4只停止该环境中JavaScript的执行,而不会停止任何其他窗口的脚本 原来的页面不会被重新加载,但是一个新的选项卡/窗口会被脚本加载 当一个选项卡/窗口关闭时,该环境中的所有东西都消失了:所有残留,部分结果,代码等。 结果必须迁移回父窗口或另一个窗口进行保存 要重新运行代码,必须重复上述步骤

其他浏览器具有并使用不同的约定。

我知道这很老了,但我想这么做,我发现了,在我看来,一个稍微改进的投掷答案的解。只是暂时抑制错误消息,然后使用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');