我继承了一些直接访问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/