代码之家  ›  专栏  ›  技术社区  ›  Alec Smart

查找调用iframe id

  •  0
  • Alec Smart  · 技术社区  · 15 年前

    我的主页上有很多iframe调用函数。有没有办法找出调用函数的iframe的id?

    所有的部分都属于同一个域,所以这不应该是一个问题。

    谢谢你抽出时间。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Marcos Placona    15 年前

    最常见的方法是将控件本身传递给函数

    <script>function doClick(e){ alert('id = ' + e.id); }</script>
    <span id=test onclick="doClick(this)"> click here</span>
    

    另一种方法是使用:

    event.srcElement
    

    如文件所述 here .

    第三种方法是使用:

    document.activeElement.name
    

    后者不是最好的方法。

    我个人认为我会选择第一个,因为它可以100%的工作,而且不会给你带来浏览器问题。

    更新 要获取当前iframe的id(假设没有在同一页上嵌套iframe),只需使用:

    this.document.getElementsByTagName('body')[0]​.id
    

    然后简单地将它与对函数的调用一起传递。例如,只需确保主体具有与iframe相同的id。

    如果有帮助,请告诉我。

        2
  •  0
  •   npup    15 年前

    我想你需要在方法调用的同时发送一个标识符。它可以是一个可选参数,如果不存在则不会造成损害,例如:

    function foo(value, refId) {
      // do stuff with value
      if (typeof refId!=='undefined') {
        // handle this
      }
    }