Nir*_*Nir 128 javascript exit die
我需要一个能退出js脚本的代码,就像PHP'exit'或'die'一样.(我知道它不是最好的编程实践,但我需要它).
Óla*_*age 75
PHP的等价物die.BTW它只是打电话exit()(感谢splattne):
function exit( status ) {
// http://kevin.vanzonneveld.net
// + original by: Brett Zamir (http://brettz9.blogspot.com)
// + input by: Paul
// + bugfixed by: Hyam Singer (http://www.impact-computing.com/)
// + improved by: Philip Peterson
// + bugfixed by: Brett Zamir (http://brettz9.blogspot.com)
// % note 1: Should be considered expirimental. Please comment on this function.
// * example 1: exit();
// * returns 1: null
var i;
if (typeof status === 'string') {
alert(status);
}
window.addEventListener('error', function (e) {e.preventDefault();e.stopPropagation();}, false);
var handlers = [
'copy', 'cut', 'paste',
'beforeunload', 'blur', 'change', 'click', 'contextmenu', 'dblclick', 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize', 'scroll',
'DOMNodeInserted', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument', 'DOMNodeInsertedIntoDocument', 'DOMAttrModified', 'DOMCharacterDataModified', 'DOMElementNameChanged', 'DOMAttributeNameChanged', 'DOMActivate', 'DOMFocusIn', 'DOMFocusOut', 'online', 'offline', 'textInput',
'abort', 'close', 'dragdrop', 'load', 'paint', 'reset', 'select', 'submit', 'unload'
];
function stopPropagation (e) {
e.stopPropagation();
// e.preventDefault(); // Stop for the form controls, etc., too?
}
for (i=0; i < handlers.length; i++) {
window.addEventListener(handlers[i], function (e) {stopPropagation(e);}, true);
}
if (window.stop) {
window.stop();
}
throw '';
}
Run Code Online (Sandbox Code Playgroud)
Lor*_*uer 61
"exit"函数通常退出程序或脚本以及错误消息作为参数.例如在php中死(...)
die("sorry my fault, didn't mean to but now I am in byte nirvana")
Run Code Online (Sandbox Code Playgroud)
JS中的等价物是用throw关键字表示错误,如下所示:
throw new Error();
Run Code Online (Sandbox Code Playgroud)
你可以轻松测试这个:
var m = 100;
throw '';
var x = 100;
x
>>>undefined
m
>>>100
Run Code Online (Sandbox Code Playgroud)
小智 45
即使在没有句柄,事件等的简单程序中,最好将代码放在"main"函数中,即使它是唯一的过程:
<script>
function main()
{
//code
}
main();
</script>
Run Code Online (Sandbox Code Playgroud)
这样,当您想要停止程序时,您可以使用"返回".
not*_*bit 13
有许多方法可以退出JS或Node脚本.以下是最相关的:
// This will never exit!
setInterval((function() {
return;
}), 5000);
// This will exit after 5 seconds, with signal 1
setTimeout((function() {
return process.exit(1);
}), 5000);
// This will also exit after 5 seconds, and print its (killed) PID
setTimeout((function() {
return process.kill(process.pid);
}), 5000);
// This will also exit after 5 seconds and create a core dump.
setTimeout((function() {
return process.abort();
}), 5000);
Run Code Online (Sandbox Code Playgroud)
如果您在REPL中(即在node命令行上运行后),则可以键入.exit退出.
Heb*_*ebe 11
可以在 devtools 中禁用 Javascript:ctrl+shift+j然后cltf+shift+p输入disable javascript
上面提到的可能选项:
window.stop(); // equivalent to the 'stop' button in the browser
debugger; // debugs
for(;;); // crashes your browser
window.location.reload(); // reloads current page
Run Code Online (Sandbox Code Playgroud)
如果页面已加载并且您不想调试崩溃或重新加载:
throw new Error();
Run Code Online (Sandbox Code Playgroud)
另外清除所有超时
var id = window.setTimeout(function() {}, 0);
while (id--) {
window.clearTimeout(id);
}
Run Code Online (Sandbox Code Playgroud)
$.xhrPool = [];
$.xhrPool.abortAll = function() {
$(this).each(function(i, jqXHR) {
jqXHR.abort();
$.xhrPool.splice(i, 1);
});
}
$.ajaxSetup({
beforeSend: function(jqXHR) { $.xhrPool.push(jqXHR); },
complete: function(jqXHR) {
var i = $.xhrPool.indexOf(jqXHR);
if (i > -1) $.xhrPool.splice(i, 1);
}
});
Run Code Online (Sandbox Code Playgroud)
$("*").prop("onclick", null).off();
Run Code Online (Sandbox Code Playgroud)
这将删除脚本并重新创建没有事件的元素
$('script').remove();
$('*').each(function(){
$(this).replaceWith($(this).clone());
});
Run Code Online (Sandbox Code Playgroud)
如果网页上没有 jQuery,请将源代码复制粘贴到控制台中。
可能还有其他东西。请在评论中告诉我。
将debugger;关键字放在 JavaScript 代码中要停止执行的位置。然后打开您最喜欢的浏览器的开发人员工具并重新加载页面。现在它应该自动暂停。打开工具的Sources部分:debugger;突出显示关键字,您可以选择恢复脚本执行。
我希望它有帮助。
更多信息请访问:
如果您不在乎这是一个错误,请输入:
fail;
Run Code Online (Sandbox Code Playgroud)
这将阻止您的主要(全局)代码继续进行。对于调试/测试的某些方面很有用。
JavaScript 有多种方法,下面是其中的一些
方法一:
throw new Error("Something went badly wrong!");
Run Code Online (Sandbox Code Playgroud)
方法二:
return;
Run Code Online (Sandbox Code Playgroud)
方法三:
return false;
Run Code Online (Sandbox Code Playgroud)
方法四:
new new
Run Code Online (Sandbox Code Playgroud)
方法五:
使用上面的方法编写您的自定义函数并在您需要的地方调用
注意: 如果您只想暂停代码执行,可以使用
debugger;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
313748 次 |
| 最近记录: |