javascript - 通过名称直接访问 iframe - 这合法吗?

标签 javascript iframe

我继承了一些直接访问iframe的javascript代码按其名称,没有任何 getElementById()或任何东西。我找不到任何迹象表明这实际上是合法的,但它似乎适用于我尝试过的浏览器(Chrome、Firefox、IE10、Windows 版 Safari)。

简单的测试用例:

<iframe name="iFrameName" id="iFrameId" src="test2.html"></iframe>
<button onclick="iFrameName.myFunction();">click me</button>

iframe 的 test2.html src 包含:

<script type="text/javascript">
    function myFunction()
    {
        alert("OH HAI!");
    }
</script>

点击按钮效果很好 - 弹出警报“OH HAI”。

这是如何工作的?应该有效吗?依赖是否安全或者我应该使用 getElementById()检索 iframe?

最佳答案

How does this work? Should it work?

是的,曾经有一段时间只能通过名称访问元素,并且大多数(全部?)浏览器仍然支持它。请参阅QuirksMode page about it ,它是几年前写的,但仍然适用。

Is it safe to rely on or should I be using getElementById() to retrieve the iframe?

您应该使用 document.getElementById() 和其他现代方法。如果您依赖名称,您的代码很快就会变得一团糟。

关于javascript - 通过名称直接访问 iframe - 这合法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17539786/

相关文章:

javascript - Electron 中两个渲染器进程之间的通信

Javascript 字符串搜索不起作用

javascript - 在 Firefox 中打印 iframe 时如何打开打印预览对话框?

javascript - 使用 JavaScript 或 CSS 更改 iframe 的内容

javascript - 将 iframe 中字符串中的 XML 显示为 XMLTree

javascript - async.waterfall 和 async.series 有什么区别

javascript - 使用 jQuery/JavaScript 获取表单对选择框更改的操作

javascript - iframe 内的脚本不工作

facebook - 当有人使用评论插件发表评论时收到通知

javascript - ToggleShow 元素只在这个特定的div中点击显示