2010-06-21 98 views
16

我試圖訪問加載外部URL的iframe的DOM。當然,由於跨域安全性,我得到「權限被拒絕」錯誤。我該如何做這項工作?我看到用json完成了一些操作(但我無法從我的外部源獲取json字符串)以及使用HTML5 postmessage完成的操作。jQuery跨域iframe腳本

你可以在現場看到: http://jsfiddle.net/QPBvJ/

的代碼是:

$(document).ready(function(){ 
    $('#get').live('click', function() { 

     var currentIFrame = $('#frameDemo'); 
     currentIFrame.contents().find("a").css("background-color","#BADA55"); 

     alert ("done") 
    }); 
    }); 

<iframe src="http://api.jquery.com/" width="80%" height="600" id='frameDemo'></iframe> 
<button id="get">Get</button> 

什麼會的最簡單的方法來完成這項工作。 謝謝

+0

您可以用相關的檢查這個職位跨域請求:** [加載跨域的HTML頁面的jQuery AJAX(HTTP: //stackoverflow.com/a/17299796/2247494)** – jherax 2014-10-27 16:12:00

回答

27

有沒有辦法使這項工作。除非您嘗試訪問的外國域名支持C.O.R.SJSONPpostMessage等程序。

有少數例外(像往常一樣):

如果你有一個Web應用程序處理的情況下,你可以告訴你的用戶,他們必須授予cross-domain-calls訪問。

在壁虎/ Firefox中,例如,你可以調用

netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead') 

使瀏覽器通過ajax/iframes訪問外部域。在這種情況下,一個用戶必須設置

signed.applets.codebase_principal_support 

trueabout:config下使這項工作。

在這個世界上的Internet Explorers,有一個名爲像allow cross-domain access深深隱藏在security選項卡設置,它必須設置爲enable

Chrome允許跨域調用,用命令行參數:

chrome.exe --disable-web-security 
+0

好的,thanx的信息。我正在研究這個,它應該可以工作。 – Mircea 2010-06-21 15:38:34

+0

在這裏您可以找到與跨域請求相關的一些信息:** [使用jQuery AJAX加載跨域html頁面](http://stackoverflow.com/a/17299796/2247494)** – jherax 2014-10-27 16:15:02