JavaScript 窗口对象元素属性

2024-02-29

一位同事向我展示了以下代码并问我为什么它有效。

<span id="myspan">Do you like my hat?</span>
<script type="text/javascript">
var spanElement = document.getElementById("myspan");
alert("Here I am! " + spanElement.innerHTML + "\n" + myspan.innerHTML);
</script>

我解释过,当浏览器解析文档时,会使用元素 id 的名称将一个属性附加到 window 对象,然后该文档包含对相应 dom 节点的引用。有点像window.myspan = document.getElementById("myspan")当页面渲染时在幕后调用。

在接下来的讨论中我们提出了一些问题:

  • window 对象和大部分 DOM 不是官方 JavaScript/ECMA 标准的一部分,但是上述行为是否记录在任何其他官方文献中,也许与浏览器相关?

  • 上面的代码在浏览器(至少是主要竞争者)中有效,因为有一个 window 对象,但在像 rhino 这样的浏览器中失败了。编写依赖于此的代码是否被认为是不好的做法,因为它对执行环境做出了太多假设?

  • 是否有任何浏览器会导致上述情况失败,或者这是否被视为全面的标准行为?

这里有人知道这些问题的答案并愿意启发我吗?我尝试了快速的互联网搜索,但我承认我不确定如何正确地表达查询。欢迎提供参考资料和文档。


这是仅适用于 IE 的非标准行为,不应使用。

[1] http://webbugtrack.blogspot.com/2007/09/bug-162-global-namespace-pollution-in.html [2] https://developer.mozilla.org/en/Migrate_apps_from_Internet_Explorer_to_Mozilla#section_7 [3] http://my.opera.com/hallvors/blog/show.dml/16388

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

JavaScript 窗口对象元素属性 的相关文章

随机推荐

  • Android openGL 示例显示空白屏幕

    我刚刚在 Galaxy s3 上尝试了来自developer android com 的原始 Open GL 示例代码 它给我的只是一个空白屏幕 我更改了透明颜色并且屏幕背景发生了变化 但我仍然看不到代码所示的任何三角形或正方形 为了验证
  • LINQ to SQL C# 中的 SELECT COUNT

    如何使用 COUNT 编写 LINQ to SQL Example var purch from purchase in myBlaContext purchases select purchase 我怎样才能在这里得到计数 像那样 var
  • noexcept、继承构造函数以及对实际完整的不完整类型的无效使用

    我不确定这是否是一个错误GCC编译器或预期的行为noexcept 考虑以下示例 struct B B int noexcept virtual void f 0 struct D public B using B B D noexcept
  • facet_grid 中的多行

    我有一个数据集 大致如下所示 names tibble NAME 2 c Location1 Location2 Location3 Location4 dates tibble date seq as Date 2015 01 01 as
  • 字体在 iPhone 上的位置?

    我正在 iPhone 项目中使用 FreeType2 库 并且如果可能的话 我尝试简单地从系统加载 TTF 文件 FT Library library FT Face face int error error FT Init FreeTyp
  • 省略 xstream 中的 xml 声明

    我想使用 xstream 将内容附加到 xml 但每次运行时都使用 xstream toXml obj writer 它会向内容添加 xml 声明 我们可以在 xstream 中省略 xml 声明吗 我刚刚遇到这个问题 使用 XStream
  • 如何在 Javascript 中将数组转换为对象数组[重复]

    这个问题在这里已经有答案了 我想转换一个数组 如 John Jane 放入对象对数组中 如下所示 name John name Jane 请帮助我这样做 尝试数组中的 map 函数 const output John Jane map na
  • 使用 Selenium 验证

    我需要验证网页上的特定插槽是否已加载 我正在使用 Selenium WebDrivermain 函数 我应该使用 JUnit 测试用例吗 在任意对象之间检索文本的方法有哪些 div 有具体的id吗 如果给定这一页 http ideone c
  • R:为文字云图形/png添加标题

    我有一些有效的 R 代码 可以从术语文档矩阵生成标签云 现在 我想从许多文档创建一大堆标签云 并在稍后进行可视化检查 要知道标签云图片属于哪个文档 语料库 我想为生成的图形添加标题 我怎么做 也许这是显而易见的 但我仍然是 R 图形的初学者
  • DNS 与 GKE 内部负载均衡器

    我在 GKE 上有两个 kubernetes 集群 一个公共集群处理与外界的交互 另一个私有集群仅供内部使用 公共集群需要访问私有集群上的一些服务 我已通过以下方式将这些服务暴露给公共集群的 Pod内部负载均衡器 https cloud g
  • 为后台线程配置 Autofac 容器

    我有一个 asp net MVC 站点 其中有许多使用 InstancePerHttpRequest 范围注册的组件 但是我还有一个 后台任务 它将每隔几个小时运行一次 但不会有 httpcontext 我想获得一个已像这样注册的 IRep
  • 我可以对隐私网址做什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试将我的 Android 应用程序投放市场 而我最不需要的就是隐私 URL 问题是我没有网站
  • 对嵌套数组进行排序并返回弹性中的前 10 名

    我在弹性索引中有一个嵌套数据类型 并且希望对所有返回的结果进行升序排序 我已经尝试过以下方法 GET indexname search source m iTopicID m iYear m Companies query terms m
  • 在继续功能之前等待图像上传的响应

    因此 我正在研究数组中多个图像的上传功能 经过一番努力 我终于让我的上传功能正常工作 并且图像显示在 Firebase 数据库中 然而 我还没有找到一种工作方法来确保我的上传功能在继续之前完成 下面是我调用 upload 函数并尝试将响应存
  • 设置仅适用于一个会话/一名用户

    我创建了一个 WindowsForms 应用程序 然后在以下命令的帮助下进行了设置这个链接 https stackoverflow com questions 56541199 how to create setup exe file fo
  • SQLite 数据库不更新列表视图项并插入新项

    当项目为listview单击后 它会在另一个活动中打开 该活动具有edittext 编辑项目后 当我保存它时 项目不会在列表视图中更新 但会在列表视图中插入一个新条目 如何更新现有项目而不插入新项目 这是我的代码 活动 TRList cla
  • 为什么 memcmp(a, b, 4) 仅有时针对 uint32 比较进行优化?

    鉴于此代码 include
  • 为什么我的按钮的“验证”事件处理程序从未被调用?

    在下面的小应用程序中 我想知道为什么从未调用 BtnOk Validating 事件处理程序 我预计单击 确定 按钮会调用事件处理程序 真实的对话框有更多的控件 每个控件都有一个验证事件处理程序 我的计划是使用 确定 按钮验证事件处理程序
  • 从 Windows 注册表读取 DWord

    如何使用 java util prefs Preferences 从 Windows 注册表读取 DWORD 值数据 我可以读取REG SZ类型的数据 但是读取REG DWORD类型时 返回null Preferences userRoot
  • JavaScript 窗口对象元素属性

    一位同事向我展示了以下代码并问我为什么它有效 span Do you like my hat span 我解释过 当浏览器解析文档时 会使用元素 id 的名称将一个属性附加到 window 对象 然后该文档包含对相应 dom 节点的引用 有