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



我正在尝试编写一个脚本以具有我的iframe元素的动态标题,而不是硬编码标题属性。因此,我想抓住iframe的SRC并加载该对象,然后获取该对象的标题元素。我尝试使用iframe.contentdocument,但我遇到了跨域安全错误。

正如消息所说,出于安全原因(这样),您无法访问另一个域的内容。对于您的用例,解决此问题的方法是将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>

最新更新