window.console 可以被覆盖吗?它是只读的吗?

2024-04-18

我用consolejavascript 中的对象用于调试,并希望覆盖它以便在移动浏览器中使用此类功能。

但是,我无法理解以下 MDN 文档

Window.console 只读属性返回对 Console 对象,提供将信息记录到控制台的方法 浏览器的控制台。

(https://developer.mozilla.org/en-US/docs/Web/API/Window/console https://developer.mozilla.org/en-US/docs/Web/API/Window/console)

尤其:

  1. 我无法弄清楚到底是什么Window https://developer.mozilla.org/en-US/docs/Web/API/Window接口,不过好像和全局的不一样window财产
  2. 测试表明(在当前的 Chromium 和 Firefox 中)window.console 确实可以被覆盖事件,尽管它似乎与我在文档中读到的内容相矛盾。 (这种覆盖的一个例子提供了这个答案 https://stackoverflow.com/a/11403129/1711186;即使评论反对

您不能使用 window.console = { ... } 因为 window.console 是 只读属性! – Luillyfe 2 月 23 日 21:28

只读性是怎么回事Window.console or window.console ?


它不是只读的。 MDN 是一个优秀的资源,但它是由社区编辑的,有时会出现错误或来源不明的声明。

  1. 我无法弄清楚到底是什么Window接口,不过好像和全局window属性不一样

界面Window定义浏览器中 window 对象上可用的属性和方法,可通过默认设置使用window全局变量。你可以这样想:var window = new Window()当然那不是字面上地 true .

  1. ... 的只读性是怎么回事Window.console or window.console ?

它不是只读的。

  • Theory: The Window界面 https://html.spec.whatwg.org/#the-window-object没有提到console根本没有,但是console spec https://console.spec.whatwg.org/说它是一个公开的名称空间对象window。 WebIDL 规范指出命名空间对象 https://heycam.github.io/webidl/#dfn-namespace-object默认情况下,它们是可写的、可配置的且不可枚举的。(谢谢杂耍者 https://stackoverflow.com/users/441757/sideshowbarker指出这一点!)

  • Practice:它在我尝试过的每个浏览器上都是可写的(Chrome、Firefox、Safari、IE9、IE11、Edge)。在除 IE11 之外的所有版本中,console是对象的“自己”属性window指代并分配给它(在松散和严格模式下)。 (IE11 是个奇怪的鸭子:console不是自己的财产window当 devtools 关闭时,但其类型是"object"如果你登录String(console)结果是"[object Console]"。但是当 devtools 打开时,它就是 的自己的财产window并且不是只读的。)

我已经更新了 MDN 页面,删除了该句子的“只读”部分。

我不是说替换console与其他东西是好主意。 :-) 但请注意,如果您选中了“显示控制台”选项(默认情况下如此),SO 自己的堆栈片段就会完全执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

window.console 可以被覆盖吗?它是只读的吗? 的相关文章

  • 我怎样才能向下滚动到多行文本框的底线,Javascript的scrollIntoView对此不起作用

    我正在尝试创建一个基本的视频和文本聊天网站 在房间页面中 我有 Flash 视频和一个文本框 多行 其中显示发送到房间的所有消息和一个文本框 供用户通过单击输入和发送旁边的按钮 tr td td tr
  • JS专用鼠标按键

    我的鼠标侧面有两个按钮 其默认行为是 后退 和 前进 我想知道的是是否可以在 JavaScript 中检测这些鼠标按钮的点击 或者这些按钮是否是类似于键盘的 播放 音量调高 和 无线开 关 的 特殊 按钮纽扣 我不知道任何特定的鼠标事件 但
  • AJAX 与 Facebook 身份验证

    我已经构建了一个完全基于 AJAX 的应用程序 它没有页面刷新并使用 AJAX 加载所有内容 现在我想以一种不会重定向用户进行页面刷新的方式嵌入 Facebook 身份验证 目前 Facebook 的工作方式如下 用户通过单击 Facebo
  • 我可以使用 javascript 捕获并保存网页的当前状态吗

    我需要使用 javascript 获取页面的全部内容并将其发送到服务器脚本以保存它 我想在用户使用 AJAX 和其他 javascript 工具对页面进行一些更改后执行此操作 我不想要某些元素的状态 我想基本上获取 body 标记内的所有内
  • 为什么告诉 jQuery 单击我的链接按钮会减慢我的页面速度?

    不知道是不是更新面板的影响 https stackoverflow com questions 31359065 performance deteriorating after async postback scrolling become
  • 保护客户端 API 的安全

    我正在为基于 JavaScript 的游戏构建服务器端 API 和客户端库 其中必须确保两个非常重要的功能的安全 用户每次游玩都必须扣款 我们必须确保提交的分数是玩家实际获得的分数 解决第一个问题看起来很简单 在每次游戏开始时 我们都会调用
  • 计算链接上的点击次数(不带 onclick)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有诸如此类的链接 a href h
  • Javascript:如何简化具有多个 OR 条件的 if 语句?

    很抱歉 如果我在写这篇文章时犯了错误 我是新来的 不知道这是如何工作的 希望我能尽快学会 我也是 JavaScript 新手 所以问题是 我有这个代码 elements js文件 我无法让它工作 放这个有用吗 if codePrompt c
  • parseInt() 和 Number() 有什么区别?

    How do parseInt https developer mozilla org en US docs Web JavaScript Reference Global Objects parseInt and Number https
  • 将数组传递给 include() javascript

    我试图找出一个字符串是否包含存储在数组中的多个字符串 includes 所以我尝试过 let string hello james console log string includes hello james 但它被返回为false 当我
  • Cloudflare Worker 缓存 API 出现问题

    我现在花了无数的时间尝试让缓存 API 来缓存一个简单的请求 我让它在中间工作过一次 但忘记向缓存键添加一些内容 现在它不再工作了 不用说 cache put 没有指定请求是否实际被缓存的返回值并不完全有帮助 我只能进行反复试验 有人可以给
  • TinyMCE 选择文本并使用 javascript 激活链接对话

    我正在尝试编写一个自动化 使用黄瓜 水豚 硒 测试 它将在tinymce框中选择一些文本 单击链接按钮 然后打开链接选择页面 但链接按钮仅在选择某些文本时才变为活动状态 所以第一轮 tinyMCE activeEditor selectio
  • 可选链接不起作用:无法读取未定义的属性“0”[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 为什么可选链在这里不起作用 html userItemModel item priceList 0 sellerUrl
  • 什么是 TypeScript?为什么我要用它代替 JavaScript? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 您能描述一下 TypeScript 语言是什么吗 它能做什么 JavaScript 或可用库不能做的事情 这让我有理由考虑它 我最初写
  • 使用node和multer将图像上传到heroku不起作用

    我正在尝试使用 Node 后端将图像文件上传到 Heroku 我可以使其工作 同样的过程在本地主机测试中工作得很好 但是在将我的项目部署到 Heroku 并测试它之后 过程和文件中出现错误不会上传 后端 let storage multer
  • 是否包括触摸事件客户端X/Y 滚动?

    我正在尝试获取相对于的触摸坐标viewport来自触摸事件的浏览器 例如触摸启动 我尝试从 clientX Y 属性获取它们 但两者实际上都返回包括滚动在内的值 这是违反规范的 因为它说 clientX Y 应该返回坐标而不滚动 我尝试添加
  • 不透明的回复有哪些限制?

    不透明的回应 https fetch spec whatwg org concept filtered response opaque被定义为一部分获取API https fetch spec whatwg org 并表示向远程源发出请求的
  • 如何在禁用按钮上启用 Bootstrap 工具提示?

    我需要在禁用的按钮上显示工具提示 并在启用的按钮上删除它 目前 它的工作原理是相反的 扭转这种行为的最佳方法是什么 rel tooltip tooltip
  • 如何了解来自不同...“命名空间”的变量?

    如何从外部 javascript 文件中访问在另一个地方声明的某个变量 假设在一个 html 文件中我有以下内容 在 otherfile html 的部分中 我有 alert a 我如何确保收到一条提示消息 某事 我认为Google Ads
  • Firebug 分析问题:“没有要分析的活动”

    我想用一些 javascript jQuery 尝试一些不同的选项 看看哪个是最快的 但是我无法让分析正常工作 这是我要测试的代码 this keypress function e console profile test retrieve

随机推荐