2010-03-17 3 views
0

메인 페이지에 함수를 호출하는 iframe이 여러 개 있습니다. 함수를 호출 한 iframe의 ID를 찾는 방법이 있습니까?호출 iframe id 찾기

모든 도메인이 동일하므로 문제가되지 않아야합니다.

감사합니다.

답변

0

가장 일반적인 방법이 이용 될

<script>function doClick(e){ alert('id = ' + e.id); }</script> 
<span id=test onclick="doClick(this)"> click here</span> 

또 다른 방법은 컨트롤이 기능 자체를 전달하는 것입니다 : 그것은처럼, 현재 전혀 해를 끼치 지 그렇지 않으면하지 않습니다 선택적 매개 변수 일 수있다 :

event.srcElement 

문서화 됨 here.

세 번째 방법하지만 같은 신뢰할 수 없습니다 사용하여 다음과 같습니다

document.activeElement.name 

후자는 가장 좋은 방법이 아니다.

100 % 시간이 걸릴 것이므로 개인적인 견해로는 첫 번째 질문에 동의하고 브라우저 문제는주지 않을 것입니다.

는 UPDATE 은 (같은 페이지에 중첩 된 iframe을하지 않아도 가정) 현재 iframe 대응의 ID를 얻으려면, 당신은 간단하게 사용할 수 있습니다

다음
this.document.getElementsByTagName('body')[0]​.id 

그리고 단순히 전화와 함께 그것을 통과 귀하의 기능에. 본문이 iframe과 동일한 ID를 가지고 있는지 확인하십시오.

도움이되는지 알려주세요.

+0

iframe의 ID를 어떻게 알 수 있습니까? 이 ID는 무작위로 생성됩니다. –

+0

단순히 함수 호출로 전달하십시오. parent.frames [0] .id –

+0

다른 iframe에는 다른 ID가 있으므로 항상 parent.frames [0] .id가 아닙니다. parent.frames [1] .id 등일 수 있습니다. –

0

메서드 호출과 함께 식별자를 보내야한다고 말하고 싶습니다.

function foo(value, refId) { 
    // do stuff with value 
    if (typeof refId!=='undefined') { 
    // handle this 
    } 
} 
+0

불행히도 그럴 수 없습니다. –

+0

어떻게 그렇게? refId는 호출자를 어떻게 든 해결하기 위해 사용할 수있는 한 모든 것이 될 수 있습니다 (iframe의 DOM ID 일 필요는 없습니다). 하지만 이제는 프레임에서 오는 통화를 제어 할 수없는 것 같습니다. – npup

+0

iframe 콘텐츠는 제어 할 수 있지만 iframe ID 또는 iframe 위치는 제어 할 수 없습니다. –