如何获取加载的 iframe 标题元素?

Posted

技术标签:

【中文标题】如何获取加载的 iframe 标题元素?【英文标题】:How to fetch the loaded iframe title element? 【发布时间】:2017-07-14 09:40:42 【问题描述】:

我正在尝试编写一个脚本来为我的 iframe 元素设置一个动态标题,而不是对标题属性进行硬编码。所以我想获取 iframe 的 src 并加载该对象,然后获取该对象的标题元素。我尝试使用 iframe.contentDocument,但出现跨域安全错误。

【问题讨论】:

试试这个***.com/a/1570900/4965214 【参考方案1】:

正如消息所述,出于安全原因(例如),您无法访问其他域的内容。对于您的用例,解决此问题的一种方法是使用 ajax 加载 iframe 的站点并从响应中读取标题。 由于标题标签不是文档的一部分 (=body),因此您无法使用 $('title', dom)dom.find('title') 获取它。但是您可以像下面的示例一样检索它。

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
            <style type="text/css">
            </style>
            <script type="text/javascript">
            $(function()
                var url = $('iframe').prop('src');
                $.get(url)
                    .done(function(html)
                        var dom = $(html);
                        var title = dom
                            .filter(function(i,d) 
                                return d.tagName == 'TITLE'; 
                            )
                            .text();
                        $('h1 span').text(title);
                    )
                ;
            );
            </script>
        </head>
        <body>
            <h1>Title: <span></span></h1>
            <iframe src="http://www.golem.de" style="width: 800px; height: 600px;" />
        </body>
    </html>

【讨论】:

以上是关于如何获取加载的 iframe 标题元素?的主要内容,如果未能解决你的问题,请参考以下文章

加载后如何获取 iframe 正文?

如何获取iframe外面的元素

如何获取页面iframe元素内容的高、宽?

如何获取 iframe 元素? [复制]

如何从 iframe 获取当前页面加载的 url [重复]

如何在 iframe 中获取元素的属性值?