我目前正在CodeAcademy上学习javascript编码实践。在Codeacademy中测试代码时,我使用console.log将字符串输出到Codeacademy内置的浏览器中。代码工作正常。第一个问题是:当我在Dreamweaver文本编辑器中测试相同的代码片段并将其输出到浏览器时,它不会打印任何内容,我必须将其更改为document.write才能使其正常工作。
下一部分 然后,我在某处读到不建议在生产代码中使用document.write!有人可以解释一下。
下一部分 我几天前简要介绍了JS免费会议。在这次会议上,建议使用类似提示的东西(“La di da”);不建议在生产工作中使用。
如果有人有时间和精力解释为什么这些东西都是JS内置的,但没有建议使用,或者为什么它们在使用时不起作用,我将非常感激。
答案 0 :(得分:2)
Code Academy将在其Web应用程序中模拟console
。在大多数浏览器中按“F12”,您将打开“开发者工具”;它将内置一个控制台,这是console.*
(包括console.log()
)调用输出到的地方。
正如我所说,Code Academy将拥有一些自己的JavaScript,它们将捕获这些调用,并使他们的教程更容易使用,将其输出到一个更容易让你看到的地方。
但是,Dreamweaver不会这样做,这就是为什么你没有看到它。使用document.write
并没有什么不妥之处。 然而它的行为会有所不同,具体取决于页面是否已加载,并且通常有更友好且更有用的替代方案,例如document.getElementById()
,用于定位何处直接输出。
有关详细信息,请参阅Why is document.write considered a "bad practice"?
与document.write
一样,prompt()
,confirm()
等也没有错; Stack Overflow自己在其网站上使用confirm()
。 缺点是它们无法设置样式,例如prompt()
仅限于一次要求一件事。
然而,模型窗口(例如jQuery UI dialog,Bootstraps "Model"或各种lightbox plugins)可以是。