2010-01-14 5 views
0

Firefox의 라이트 박스에 표시된 iframe에서 실행중인 Java 애플릿의 조합을 사용하여 이상한 문제에 대해 머리가 맞고 있습니다. 다음 오류가 Firefox의 이상한 Lightbox/iframe/Java 애플릿 문제

Error: document.appletname.send is not a function 

을 반환하는 lighbox (실제로 lightwindow) 내부에서 호출 그러나 페이지가

document.appletname.send 

기능 완벽 자바 스크립트 호출 애플릿에 직접 표시됩니다

, Windows의 Firefox에서만 발생합니다. IE, 사파리와 크롬은 애플릿이 정보는

우분투

에 Wirefusion 3D 프리젠 테이션 파이어 폭스입니다 당신이 애플릿이 page containing the lightbox에서, 또는 직접 Highland Laddie 3D at the bottom of the page를 클릭하여 라이트 박스를 통해 실행 볼 수 있듯이, 괜찮습니다.

자바 스크립트 진단 코드를 추가하여 애플릿이 존재하고 올바른 이름을 가지고 있는지 확인하려고 시도했습니다. 내가 볼 수있는 유일한 이상한 점은 Firefox에서 애플릿이 두 번로드되기 시작하는 것입니다.

ADDED : 질문에 대한 답변입니다. 라이트 박스에서 호출되는 페이지는 매우 간단합니다. 단지

<div style="position:absolute; top:0px; left:0px"> 
<iframe id="mainframe" 
src="http://www.tartanweb.com/laddie/highlandladdie.php" width="730px" height="670px" scrolling="no"> 
    <p>Your browser does not support iframes.</p> 
</iframe> 
</div> 
<div style="position:absolute; top:15px; left:600px; z-index:1; width:30px;" > 
<a href="blank-width.html" class="lightwindow_action" rel="deactivate"><input type="button" value="Close"></a> 
</div> 

그래서 iframe 자체와 닫기 버튼 일뿐입니다. 문제를주는 자바 스크립트 코드는 iframe에서 호출하는 페이지입니다. 검사 할 iframe에 자바 스크립트 코드를 추가하고 페이지에 애플릿 하나만보고합니다. 애플릿은 포함 된 페이지 안에 두 번로드 할 수 없습니다.

+1

나는 Highland Laddie의 360 ° 회전 기능이 마침내 * 영원한 질문에 대한 결론을 제공하기를 바랬다. 슬프게도, 나는 실망했다. :) –

+0

그건 그냥 슬프다 – Cruachan

+0

@Cruachan : 그냥 농담. 사이트는 훌륭하고 특히 3d 기능입니다. 그것과 같은 것을 결코 보지 못했습니다. –

답변

0

라이트 박스 및 클론은 때때로 최악의 경우에는 DOM 요소를 Lightbox 컨테이너에 복사합니다. IFRAME이 두 번로드되는 것을 고려해야합니다.

애플릿이 IFRAME에 없으면 Lightbox가 애플릿을 복제하고 document.appletname에 대한 모든 후속 호출이 실패해야합니다. 그러나 Java 애플릿이 IFRAME에 내장되어 있으면 어떻게 될지 알 수 없습니다. 어쩌면 IFrame 외부에서 애플릿을 참조하고 있습니까? 참조 코드를 보여줄 수 있습니까?

+0

외부에서 참조하지 않음 - lightwindow에서 호출하는 전체 코드를 질문에 추가했습니다. – Cruachan

+0

흠. 그러면로드 문제 일 수 있습니다. 애플릿이 표시되기 전에 오류가 발생합니다. 문서가 완전히로드 될 때까지'highlandladdie' 객체와의 통신을 지연시킬 수 있습니까? –

+0

아 맞습니다. 실행기 javascript (Wirefusion의 제 3 자)를 애플릿 코드를 직접 캐시에서 문자열로 변경 한 다음로드 후 div innerHTML에 할당하면 Firefox에서 제대로 작동합니다. 물론 그것은 IE에서 그것을 깨뜨리지 만, 브라우저의 특정 코드를 회전 시켜서 처리 할 수 ​​있습니다. 이상하게도 애플릿은 여전히 ​​파이어 폭스에서 두 번 시작하는 것처럼 보이지만 작동합니다. – Cruachan