Всплывающий апплет не отображает второй щелчок в окне, которое вызывает - PullRequest
0 голосов
/ 20 мая 2011

Я занимаюсь веб-разработкой с использованием Struts и одного используемого мной апплета, который называется jsp.когда я нажимаю в первый раз, всплывающее окно отображается отлично, а когда я нажимаю второй раз в кнопке, которая вызывает апплет, мое окно апплета не отображается, показывает только фон.Когда я пытаюсь F5, он работает.

Эта проблема возникает только в Firefox.Как мне решить эту проблему?

Вот мой клик:

onClick="javascript:showPopupAssinatura('<c:url value="/jsp/servidor/tabletAssinaturaManuscrita.jsp"/>', 'PopupAjuda', 633, 349, 'status=0,scrollbars=0, resizable=no');"

Вот моя функция showPopupAssinatura:

function showPopupAssinatura(mypage,myname,w,h,features) {
if(screen.width){
     var winl = (screen.width-w)/2;
     var wint = (screen.height-h)/2;
     }else{winl = 0;wint =0;}
     if (winl < 0) winl = 0;
     if (wint < 0) wint = 0;
     var settings = 'height=' + h + ',';
     settings += 'width=' + w + ',';
     settings += 'top=' + wint + ',';
     settings += 'left=' + winl + ',';
     settings += features;
     var target = "mppesga" + myname;
     win = window.open(mypage,target,settings);

     if (win != null) {
        win.window.focus();
 }
}

1 Ответ

1 голос
/ 23 мая 2011

Я решил эту проблему, используя метод javascript: showModalDialog !!!

function showPopupAssinatura(mypage,myname,w,h,features) {
if(screen.width){
     var winl = (screen.width-w)/2 - 66;
     var wint = (screen.height-h)/2 + 26;
     var navegador = navigator.appName.toLowerCase();

}else{winl = 0;wint =0;}

     if (winl < 0) winl = 0;
     if (wint < 0) wint = 0;

     var settings = 'height=' + h + ',';
     settings += 'width=' + w + ',';
     settings += 'top=' + wint + ',';
     settings += 'left=' + winl + ',';
     settings += features;
     var target = "mppesga" + myname;

     /** 

      * checking what browser is currently being used to make the action of  
      * visualize the popup. 
      */

     if(navegador.indexOf("netscape") != -1)
         win = window.showModalDialog(mypage,null,"dialogWidth:"+w+"; dialogHeight:"+(h+=6)+"; dialogTop:"+wint+"; dialogLeft:"+winl+"; resizable:no");
     else
         win = window.open(mypage,target,settings);

     if (win != null) {
        win.window.focus();
 }
}

Это решение работает только в Firefox, потому что в IE размер не соответствует стандарту, поэтому я поставил условие для браузера, который используется в данный момент.

Я надеюсь, что смогу помочь кому-то, если возникнет такая же проблема, если этот код. =]

...