JQuery междоменный сценарий iframe

Я пытаюсь получить доступ к DOM iframe, который загружает внешний URL. Конечно, я получаю сообщение об ошибке "Отказано в доступе" из-за междоменной безопасности. Как я могу сделать эту работу? Я видел что-то сделанное с помощью json (но я не могу получить строку json из моего внешнего источника), а что-то сделанное с помощью пост-сообщения HTML5.

Вы можете увидеть это в прямом эфире по адресу: 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>

Какой бы самый простой способ сделать эту работу. Спасибо

1 ответ

Решение

Нет способа сделать эту работу. Если внешний домен, к которому вы пытаетесь получить доступ, не поддерживает такую ​​процедуру, как CORS, JSONP или postMessage.

Есть несколько исключений (как всегда):

Если вы, например, имеете дело с WebApp, вы можете сказать своим пользователям, что им нужно предоставить доступ к cross-domain-calls,

Например, в Gecko/Firefox вы можете вызвать

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

который позволяет браузеру получать доступ к чужим доменам через ajax/iframes, В этом случае пользователь должен установить

signed.applets.codebase_principal_support

в true под about:config чтобы сделать эту работу.

в Internet Explorers этого мира, есть настройка, которая называется что-то вроде allow cross-domain access глубоко спрятан в security вкладка, которая должна быть установлена ​​в enable,

Chrome разрешает междоменные вызовы с аргументом командной строки:

chrome.exe --disable-web-security
Другие вопросы по тегам