MAT*_*RTH 0 html javascript bookmarklet
我在JavaScript代码中经历了一些while循环,并对导致循环从网站中删除所有代码(单个标头除外)的原因感到好奇。我认为这是因为循环是无限的(因为1始终等于1),但是对于为什么不仅仅使网站崩溃而感到好奇。是否由于未将document.write指定给某个路径?
javascript: (function() { while (1) { document.write('Y'); }})();
Run Code Online (Sandbox Code Playgroud)
编辑:感谢您的帮助,似乎document.open已运行并导致页面代码被删除。然后,浏览器认为这是由于实际网站的代码所致,Chrome发出了一条错误消息。
document.write()是DOM阻止功能,这意味着浏览器会中断解析。因此,在调用函数时,浏览器将永远停留在其上,并且无法继续正确呈现该网站。
另一个效果如下:
当document.write写入文档流时,在关闭的(已加载)文档上调用document.write会自动调用document.open,这将清除文档。
https://developer.mozilla.org/zh-CN/docs/Web/API/Document/write
两者都取决于时间,可能涉及比赛条件。
请阅读此问答以获取有关SO的更多信息: