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