2009-09-27 3 views
0

문서가로드 될 때가 아니라 렌더링이 시작되는 즉시 자바 스크립트 코드를 iframe 내부에서 실행하려고합니다. 목적은 인라인 스크립트 블록 내부에서 실행되는 프레임 내부의 자바 스크립트 동작을 수정하고 싶습니다. onload-event는 너무 늦은 인라인 스크립트 이후에 실행됩니다. html이로드되기 시작하면 바로 javascript를 실행하는 방법은 무엇입니까?페이지가로드되기 시작하자마자 iframe에서 코드를 실행하는 방법 (로드되지 않음)

답변

2

다른 게시물의 yahoo iframe에서 자바 스크립트 코드를 제거하려고한다고 가정하면 도메인에없는 iframe 내부의 내용을 변경할 수 없습니다.

+0

난 그냥 openid 사용자의 편의를 위해 iframe 내부에 표시됩니다. 나는 어떤 종류의 사기꾼이 아닙니다 ... – usr

+2

OpenID에, 당신은 사기꾼과 구별 할 수 없습니다. OpenID는 사이트 간 스크립트로 로그인 양식을 만들고 파괴 할 수 있다면 어떤 종류의 보안을 제공 할 수 있습니까? – bobince

+0

사실입니다. 나는이 방법을 포기해야한다고 생각합니다. – usr

1

코드를 onload에 넣는 대신 스크립트에 넣기 만하면됩니다. 예를 들어, 대신

<script> 
    function doStuff(){ 
    // ... 
    } 
</script> 
<!-- snip --> 
<body onload="doStuff();"> 

당신은이 작업을 수행해야합니다

<script> 
    function doStuff(){ 
    // ... 
    } 
    doStuff(); 
</script> 
<!-- snip --> 
<body> 
1

당신은 스크립트 인라인을 추가하는 듯했으나이 매우 조심해야 할 수 있습니다. 페이지가 완전히로드되지 않고 DOM에 액세스하려고 시도하면 예외가 발생할 수 있습니다. 일반적으로 인라인 스크립트는 권장하지 않습니다. 브라우저의 동작에 의존하기보다는 실행 흐름을 직접 제어하는 ​​것이 좋습니다. 가능한 경우 인라인 스크립트를 호출 순서를 지정할 수있는 기능으로 이동하는 방법을 찾는 것이 좋습니다.

+0

불행히도 프레임 코드를 소유하고 있지 않습니다. – usr

0

이 경우 Onload가 작동하지 않습니다. 해당 페이지가 자신이 있다면 각 페이지의 헤더 안에 스크립트를 삽입하여 현재 창이 부모 창인지 여부를 확인할 수 있습니다. 부모 창이 아니라면 iframe을 의미합니다. iframe 인 경우 코드를 실행하십시오.

관련 문제