문제

현재 단일 원산지 정책 의이 문제를 처리하기 위해 프록시 스크립트에 의존하고 있습니다. 느리고 오버 헤드를 만듭니다. 말할 것도없이, JavaScript는 렌더링되지 않습니다.

거기에 대안이 있습니까?

도움이 되었습니까?

해결책

오, 당신이 찾고있는 솔루션은 iframes와 함께 생각합니다. 그러나 IFRAME 접근 방식은 정신적, 기술적 사업입니다. 이 안내서부터 시작하는 것이 좋습니다.

Iframes와의 도메인 크로스 커뮤니케이션

대안적인 접근 방식은 스크립트 태그와 JSON을 사용하여 다른 서버에서 비동기 적으로 데이터를 얻는 것입니다.

<script src="http://remotesite.com/path/to/script/blah.js"></script>

새 스크립트 태그 요소를 만들어 데이터를 전달하고로드하고 DOM에 추가하거나 마크 업을 내부 요소에 삽입 할 수 있습니다.

나는 당신이 몇 가지 자세한 예와 구현 방법을 찾을 수 있다고 확신하지만, 새로운 스크립트 방법으로 추적 해야하는 한 가지는 너무 많은 Tot He dom을 추가하는 것입니다. 이것은 당신에게 출발점을 제공하고 제공 할 수 있습니다.

function require (url, callback) {
    if (!isScriptLoaded(url)) { 
        document.write('<script src="' + url + '" type="text/javascript" charset="utf-8"><\/script>');

        if (callback) {
            callback();
        }
    }
}

function isScriptLoaded(src) {
    var scriptsLoaded =  {};
    var scriptTags    = document.getElementsByTagName("script");

    for (var i = 0, script; script = scriptTags[i]; i++) {
        if (script.src) { 
            scriptsLoaded[script.src] = 1;
        }
    };

    if (scriptsLoaded[src]) {
        return true; 
    }

    return false;
}

(테스트되지 않았지만 ~해야 한다 일하다!)

어느 쪽이든 - 행운을 빕니다.

다른 팁

해당 JavaScript 코드를 제공하는 서비스에 콜백 이름을 매개 변수로 제공 할 수 있다면 문서에 스크립트 태그를 추가 할 수 있습니다. src 서비스 호출을 가리키는 속성. 그렇지 않으면 운이 좋지 않습니다.

iframe을 사용하고 시도하십시오 window.postMessage(message, origin) (그럴 것입니다 parent.postMessage Iframe에서 iframeElement.contentWindow.postMessage 최신 주요 브라우저 (Firefox, IE, Safari, Chrome 등) 및 변경/폴링의 경우 상단 페이지에서) window.name 오래된 브라우저 용.

JSON-P는 이런 종류의 일에 거의 이상적입니다. jQuery 또는 이와 유사한 JavaScript 라이브러리를 사용하는 경우 작업이 훨씬 쉬워집니다.

http://docs.jquery.com/ajax/jquery.getjson#urldatacallback

물론, JSON-P, 숨겨진 iframes, postmessage, flash proxies 또는 기타 이국적인 솔루션을 사용하는지 여부를 결정할 수 있도록하는 일에 달려 있습니다.

두 도메인을 모두 제어하고 Firefox 3.5+ 만 관리하는 경우 xmlhttprequest 객체를 사용하고 권한을 설정할 수 있습니다. 액세스 제어.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top