javascript – 如何在不知道ID的情况下从内页获取父iframe元素?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在不知道ID的情况下从内页获取父iframe元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让我们想象我有这样的事情:
<html>
...
    <div>
        <iframe src="test.html" hash="r4d5f7"></iframe>
        <iframe src="test.html" hash="8f7x97"></iframe>
        <iframe src="test.html" hash="gg4v5e"></iframe>
        <iframe src="test.html" hash="e54f87"></iframe>
    </div>
...
</html>

test.html是空页面,自定义哈希属性总是具有不同的值,出于安全原因,两个页面都在同一个域上,iframe元素的数量和顺序是随机的.

我的问题是:有没有办法从内页(test.html)使用Javascript到其正确的iframe元素?让我们说,我在第三个iframe的页面中,我需要获取其iframe元素和alert()哈希值(在本例中为“gg4v5e”).

更具体.如果您熟悉Firefox的Firebug,它可以看到这种情况:

<html>
...
    <div>
        <iframe src="test.html" hash="r4d5f7">
            <html>
                 ...
            </html>
        </iframe>
        <iframe src="test.html" hash="8f7x97">
            <html>
                 ...
            </html>
        </iframe>
        <iframe src="test.html" hash="gg4v5e">
            <html>
                 ...
            </html>
        </iframe>
        <iframe src="test.html" hash="e54f87">
            <html>
                 ...
            </html>
        </iframe>
    </div>
...
</html>

当我使用我的Javascript at< html>时,可以调用“something”来获取父元素(< iframe>)内页中的元素?

解决方法

当然有.
代码适用于FF和IE6,Opera,Chrome(需要Web服务器以及来自相同域协议和端口的两个文件)
function getHash()   {
           var ifs = window.top.document.getElementsByTagName("iframe");
           for(var i = 0,len = ifs.length; i < len; i++)  {
              var f = ifs[i];
              var fDoc = f.contentDocument || f.contentWindow.document;
              if(fDoc === document)   {
                 alert(f.getAttribute("hash"));
              }
           }
        }
原文链接:https://www.f2er.com/js/159096.html

猜你在找的JavaScript相关文章