2013-02-19 5 views
0

모든 프레임 문서를 반복하고 일부 입력을 설정해야하는 자동화 된 프로그램을 만들었습니다.자바 스크립트를 사용하여 루프를 통해 Iframe을 반복합니다.

아래의 함수를 사용하여 반복 작업을 수행했는데, 아래 URL에서 Access Denied 오류가 발생했습니다.

http://usacarhire.com/

코드 나는 모든 프레임 및 iframe을 반복하는 데 사용하고 있습니다.

var i = new Array; 
var t = ''; 

var IFrameDoc; 

function GetAllFrame(a, n) 
{ 
t = ''; 

try { 

    for (i[n] = 0; i[n] < a.length; i[n]++) 

{try{ 
var oIframe = a[i[n]]; 

      IFrameDoc = oIframe.document; 

      alert(IFrameDoc.body.outerHTML); 
     } 
     catch (e) { 
      alert("Internal Error" + e.message + " - " + a[i[n]].frames.length); 
     } 

     if (a[i[n]].frames.length) t += GetAllFrame(a[i[n]].frames, n + 1); 

    } 
} 
catch (e) { 
    alert("External Error" + e.message); 
} 
return t;} 
+0

원격 위치 또는 컴퓨터에서 액세스가 거부되는 iFrame이 있습니까? – gmaliar

+0

예, 그렇습니다. 나는 그것의 교차 도메인 일을 알고 있지만 그것을 해결하는 방법을 모르겠다? –

+0

아무도 도와 줄 수 있습니까? –

답변

0

다른 iFrames가 아닌 경우 해결할 수 없으며 교차 출처 정책을 재정의 할 수 없습니다. 둘 다 소유하고 있다면 할 수있는 일은 HTML5의 postMessage API를 사용하여 iFrame과 부모 창 사이의 "대화"를 사용하는 것입니다. 그러나 나는 그것이 당신이 원하는 것이라고 생각하지 않습니다. 그럴 경우 의견을 남기면 답변을 수정합니다.

+0

네, 그건 내 것이 아니지만 그 일을하는 방법이 있어야합니다 ... –

+0

가이, Iframe의 세부 정보를 가져 오거나 설정할 수있는 방법이 있습니까? –

+0

iFrame이 부모 창과 동일한 도메인에 속하는지 여부는 모두 다릅니다. 그렇지 않다면, 대부분의 경우 가능하지 않으므로 HTML5 postMessage 또는 다른 형식을 사용해야합니다.이 blogpost를 유용하게 보일 수 있습니다. http : // softwareas .com/cross-domain-communication-with-iframe – gmaliar

관련 문제