2017-02-23 100 views
0

我正在嘗試編寫一個腳本來爲我的iframe元素提供動態標題,而不是硬編碼title屬性。所以我想抓取iframe的src並加載該對象,然後獲取該對象的標題元素。我嘗試使用iframe.contentDocument,但我得到了跨域安全錯誤。如何獲取加載的iframe標題元素?

+0

試試這個http://stackoverflow.com/a/1570900/4965214 –

回答

0

正如消息所述,出於安全原因(如此),您無法訪問其他域的內容。解決這個問題的一個方法是使用ajax加載iframe的站點,並從響應中讀取標題。 由於標題標籤不是文檔的一部分(=正文),因此無法使用$('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>