我虽然这很简单,但我找不到答案。我需要知道如何从iframe中访问iframe的名称。我正在尝试这样的事情,但它没有用。
<iframe name="thename">
<script type="text/javascript">
alert(parent.name);
</script>
</iframe>
答案 0 :(得分:51)
你几乎是对的。在name
或frame
上设置iframe
属性会将框架的全局name
对象的window
属性设置为该字符串。 (不是parent
,它指的是拥有该框架的文档的窗口。)
因此,除非其他一些脚本故意更改名称,否则它就像:
一样简单1.html:
<iframe name="tim" href="2.html"></iframe>
2.html:
<script type="text/javascript">
alert(window.name); // tim
</script>
答案 1 :(得分:50)
我更喜欢的答案组合:
// window.frameElement Gets IFrame element which document inside
window.frameElement.getAttribute("Name");
适用于IE7 +,Mozilla&amp;铬
答案 2 :(得分:4)
在某些情况下window.frameElement
会在iframe中返回null
,所以我想为它解决方法。
<强> 1。你需要在iframe的
<iframe name="tim" href="2.html#your-hash"></iframe>
<强> 2。在iframe中,您可以使用
获取此哈希值<script type="text/javascript">
var hash = window.location.hash;
</script>
答案 3 :(得分:1)
嗯,IFRAME元素不应该包含任何内容,而是针对另一个文档。因此,在IFRAME中使用SCRIPT标记并没有多大意义。相反,在被调用文档中使用SCRIPT,例如
iframe_caller.html:
<html>
<body>
<iframe id="theIframe" name="theIframe" src="iframe_doc.html"></iframe>
</body>
</html>
iframe_doc.html:
<html>
<body>
<script type="text/javascript">
var iframes= parent.document.getElementsByTagName("iframe");
document.write(iframes[0].getAttribute("id"));
</script>
</body>
</html>
注意我在那里使用parent.document.function()
。
答案 4 :(得分:0)
这样的事情应该有效:
parent.document.getElementById('idhere').name;
您必须使用父级,然后通过Id,Name等获取元素...然后访问name属性。
所以你的代码应该是:
<iframe name="thename">
<script type="text/javascript">
var iframeName = parent.document.getElementById('idhere').name;
</script>
</iframe>