从div中的多个iframe中提取标题

时间:2016-02-22 01:57:13

标签: javascript jquery html iframe title

我已经和它斗争了几天,似乎无法解决这个问题。我有几个htmls(都驻留在同一个域中),我加载到父页面内的div作为iframes。然后我尝试从每个iframe中提取标题并将它们推入一个数组,然后删除iframe。一切都很好,除了pageTitles数组填充了许多空字符串。谢谢!

        var currentPage = 0;                
        var pages = new Array("page1.html", "page2.html", "page3.html", "page4.html");
        var maxPages = pages.length;    

        var pageTitles = [];

        for (i=0; i < maxPages; i++){
            var iframe = document.createElement('iframe');
            iframe.frameBorder=1;
            iframe.width = "400px";
            iframe.height = "50px";
            iframe.id="childFrame"+i;
            var frameTitle = iframe.id;
            iframe.setAttribute("src", pages[i]);
            document.getElementById("hidden").appendChild(iframe);
            //pageTitles.push(window.frames[i].document.title); // tried this with no luck
            pageTitles.push($("#"+frameTitle).contents().find("title").text());
            //pageTitles.push(document.getElementById(frameTitle)[0].document.title); // this is probably completely wrong, but thought I'd try it anyway
            document.getElementById("hidden").removeChild(iframe);
        }

2 个答案:

答案 0 :(得分:2)

你必须等待加载iframe。只有这样,您才能获取内容值。这可能有所帮助。

$_REQUEST["i18n[1][name]"]

答案 1 :(得分:1)

非常确定iframe内容尚未加载,因此无法获取标题。包含一个onload回调,让该回调确定iframe的名称,然后销毁iframe并加载下一个。

Capture iframe load complete event