2010-02-14 4 views
2

자바 애플릿을 표시하는 웹 페이지가 있습니다. 잘 작동하는 JavaScript를 사용하여 창 크기를 조정하면 애플릿의 크기가 조정됩니다. 애플릿의 너비와 높이가 100 %로 설정됩니다. 애플릿이로드 될 때 이미지가 표시됩니다.높이가 100 %로 설정된 Java 애플릿 불러 오기

image = "preloader.gif" 

IE 6/7을 사용하면 모든 것이 잘 동작합니다. 그러나 Firefox에서는 애플릿의 높이가 약 200 픽셀입니다. 폭은 100 %에서 정확합니다. 따라서 프리 로더 이미지가 절반으로 잘립니다. 애플릿이로드되고 자바 스크립트가 페이지의 크기를 조정하면 너비와 높이가 올바르게 설정됩니다.

HTML 코드를 변경하고 애플릿의 고정 크기를 사용하면로드하는 동안 개체가 올바르게 표시되지만 나중에 크기를 조정할 수 없습니다.

이 문제를 해결하려면 어떤 해결책이 있습니까?

감사합니다, 다니엘

PS 내가 개체/embed 태그를 사용하고,하지만 난 애플릿 태그를 사용하는 경우 문제가 동일합니다.

답변

0

페이지를 보지 않고 말하기가 어렵습니다. 하나의 가능성은 자바 스크립트가 실행되기 전에 애플릿이로드된다는 것입니다. 어떤 경우에는 자바 스크립트를 사용하여 애플릿을로드 할 수 있습니다 (HTML에서 직접 코딩하는 대신).

1

CSS 기반 솔루션을 구현하고 100% 크기의 애플릿을 만드는 것이 좋습니다 (div). 이 방법을 사용하면 간단하고 견고하며 크로스 브라우저가 안정적입니다. 이 일을 할 수없는 이유가 있습니까?

+0

에게 있습니다. 애플릿 (100 %에서)은 div 안에 100 % 너비와 높이로 설정되어 있습니다. 내가 말했듯이, IE에서는 작동하지만 Firefox에서는 작동하지 않습니다. – puls200

+0

명확히하기 위해, 크기 조정은 Firefox에서도 작동하지만,로드 중일 때는 그렇지 않습니다. 모든 .jar 아카이브가로드되면 애플릿이 핸들을 페이지에 전달하면 애플릿 영역의 크기가 올바르게 조정됩니다. 애플릿을 초기화하는 것의 작은 세부 사항입니다. – puls200

+0

재미있는 점은 크기 조정이 발생하기 전에 문제가 발생하면 CSS 문제라는 것을 추측 할 수 없습니다. 이 단계에서 애플릿이 올바르게 표시되도록 JavaScript 크기 조정 코드를 비활성화하고 수정하려고 시도 할 수 있습니까? – Pool

0

파이어 폭스와 오페라에서 비슷한 종류의 짧은 애플릿을 사용하고있었습니다.

이제 애플릿을 동적으로 만들면 뷰포트 크기에 따라 포함 된 div의 크기를 계산할 수 있습니다. 이것은 100 %가 아닌 점으로 지정된 크기의 포함 div를 사용하면 원하는 것을 얻을 수 있다고 믿게합니다.

내가 애플릿

function initJavaView() { 
    ... 
    var viewportHeight = window.innerHeight ? window.innerHeight : 
               $(window).height(); 
    var height = viewportHeight - appletArea.offsetTop - 8; 
    html = '<div style="width:100%;height:' + height + 'px;">' 

    if (!$.browser.msie /*&& !$.browser.mozilla*/){ 
     html = html + '<object type="application/x-java-applet;version=1.5" '; 
    } else { 
     html = html + 
      '<object ' + 
      'classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" '+ 
      'codebase = "http://java.sun.com/update/1.5.0/jinstall-1_5-windows-i586.cab#Version=1,5,0,0" '; 
    } 
    html = html + ' width="100%" height="100%">' + 
    ... 
    appletArea.innerHTML = html; 
}; 

에게 저도 같은 문제가 있었다 http://books.verg.es/elements_of_ux.html?format=java

0

에서 실행되는 코드를 생성하기 위해 사용하는 코드, 나는 답을 찾을 수없는,하지만 난 솔루션을 얻었다. Javascript 함수에 애플릿 코드를 내장하고 페이지가로드 된 직후 body의 innerHtml로 채 웁니다 (또는 애플릿을 사용하려는 모든 위치). 그래서 ...

//optional: add styles 
function styleApplet(){ 
    document.getElementsByTagName('body')[0].style.overflow = 'hidden'; 
} 

//complementary funcion so applet code is readable 
function documentWrite(chars){ 
    buffer +=chars; 
} 

//funcion to add all code at once. It is compulsory 
function executeWrite(){ 
    document.getElementsByTagName('body')[0].innerHTML = buffer; 
    buffer = ''; 
} 

function writeApplet(){ 
    documentWrite('<applet code="..... </applet>'); 
    documentWrite('..... '); 
    documentWrite('</applet>'); 

    executeWrite(); 
} 

$(document).ready(function(){ 
    setTimeout('writeApplet()',100); 
    setTimeout('styleApplet()',100); //optional 
} 

이 모든 대답에 추가 도움이 :-) 내가 어떻게 정확히