2013-07-30 59 views
0

我試圖將頁面加載爲iframe,然後從中提取一些信息。iframe .contents未找到內容

function calleniro(who, where, announcementID){ 
    var url = 'https://personer.eniro.se/resultat/'+who+'/'+where; 
    var frameid=announcementID.substr(0,7) 
    var iframe=$('<iframe />', { 
     src: url, 
     id: frameid 
    }).appendTo('body'); 
    iframe.load(function(){ 

     var frame = $('#'+frameid).contents; 
     console.log(frame) 
    }); 
} 

console.log($(frameid))呈現iframe的節點desierd,當我添加的內容它似乎找不到點兒

var frame = $(frameid).contents().find('body'); 

也不起作用。

+0

是iframe在與父文檔相同的域中的url嗎? – wroniasty

+0

不!它必須是? – Himmators

+0

我相信如此:http://en.wikipedia.org/wiki/Same_origin_policy – wroniasty

回答

0

由於Same origin policy您無法與域之外的內容進行互動。

如果您的唯一意圖是加載頁面以從中獲取值(即不實際顯示IFrame),您可以簡單地使用Eniro url $.get()來獲取原始HTML響應,然後從那裏解析它。我認爲應該是可能使用jQuery,可能需要一些修修補補雖然:)

更新 正如已經指出的那樣,同根同源的政策適用於我的解決方案,以及(每天學習新的東西!),但是應該完全可以在服務器上應用該解決方案

+0

感謝您的答案,allthough,同樣的起源政策適用於此。我結束了一個PHP代理http://benalman.com/code/projects/php-simple-proxy/examples/simple/ – Himmators

+0

啊!我確信這是可能的!我的錯!必須與我做過的其他事情混淆,很高興你找到了解決方案! –

+0

您發佈到異地服務器,但這是非常多的。 – Himmators