从iframe内部访问iframe名称

时间:2010-02-12 00:58:34

标签: javascript html iframe

我虽然这很简单,但我找不到答案。我需要知道如何从iframe中访问iframe的名称。我正在尝试这样的事情,但它没有用。

<iframe name="thename">
  <script type="text/javascript">
    alert(parent.name);
  </script>
</iframe>

5 个答案:

答案 0 :(得分:51)

你几乎是对的。在nameframe上设置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>