javascript - 所需信息

标签 javascript

我目前正在 CodeAcademy 上学习 javascript 编码实践。在 Codeacademy 中测试代码时,我使用 console.log 将字符串输出到 Codeacademy 中的内置浏览器。该代码运行良好。第一个问题是:当我在 Dreamweaver 文本编辑器中测试同一段代码并将其输出到浏览器时,它什么也不打印,我必须将其更改为 document.write 才能正常工作。

下一部分 然后我在某处读到不建议在生产代码中使用 document.write !有人可以解释一下吗?

下一部分 前几天我参加了一个关于 JS 免费 session 的简短介绍。在这次 session 上,有人建议使用诸如prompt(“La di da”);之类的东西。不建议在生产工作中使用。

如果有人有时间和精力解释一下为什么这些东西内置在JS中但不推荐使用或者为什么它们在使用时不起作用,我将非常感激。

最佳答案

  1. Code Academy 将在其 Web 应用程序中模拟控制台。在大多数浏览器中按“F12”,您将打开“开发人员工具”;它将内置一个控制台,这是console.*(包括console.log())调用获取输出的地方。

    就像我说的,Code Academy 将有一些他们自己的 JavaScript,它们将捕获这些调用,并使他们的教程更易于使用,并将其输出到您更容易看到的地方。

    但是,Dreamweaver 不会执行此操作,这就是您看不到它的原因。

  2. 使用 document.write 并没有什么本质上的错误。 但是根据页面是否已加载它的行为有所不同,并且通常有更友好和更有用的替代方案,例如用于定位直接输出的位置的document.getElementById()

    有关详细信息,请参阅 Why is document.write considered a "bad practice"?

  3. document.write一样,prompt()confirm()等没有任何问题; Stack Overflow 本身在其网站上使用 confirm()。缺点是它们无法设置样式,例如,prompt() 仅限于一次请求一件事。

    但是模型窗口(例如 jQuery UI dialogBootstraps "Model" 或各种 lightbox plugins )可以。

关于javascript - 所需信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240831/

相关文章:

javascript - 如何在单次运行期间使用 karma test-runner 测试两个具有相同名称的不同类?

javascript - jquery 实时点击事件在 IE8 中不起作用

javascript - Angular 中的 ng-repeat 递归

javascript - 语法错误 : missing ] after element list [object Object]

javascript - 在 Backbone 中,model.get ('foo' ) 和 model.attributes.foo 之间有什么区别吗?

javascript - DIV结构的JS

javascript - 我想在单击后更改按钮的背景颜色,并在单击另一个按钮后再次更改为原始颜色

javascript - 如何禁用基于数据库值的条件选择

javascript - 根据变量传递不同的页面

javascript - c3js 的缩放功能是否也可以放大 y 值?