Avatar billede mrbonus Novice
22. maj 2007 - 13:58 Der er 10 kommentarer og
1 løsning

virker med en alert() men ikke uden

Sidder lige og mangler en ekspert i java til at forklare mig hvad jeg skal gøre for at få denne showmodaldialog alternativ til firefox til at virke uden alert(); kaldet.

<script language='javascript'>
<!--
var newWindow;
function showModelDialog_Button9(evt)
{
    stopEvent(evt);
  if (window.showModalDialog) {
        document.getElementById('Button9').disabled = true;
      window.showModalDialog('Default.aspx','','dialogHeight: 300px; dialogWidth: 300px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: Yes;');
        __doPostBack('Button9','');
  } else {
      newWindow = window.open('Default.aspx','','height=300,width=300,toolbar=no,directories=no,status=no,linemenubar=no,scrollbars=no,resizable=no,modal=yes');
      newWindow.onbeforeunload = clickButton_Button9
  }
}
function clickButton_Button9()
{
  alert('test');
  setTimeout("newWindow.onbeforeunload = clickButton_Button9", 100);
  setTimeout("if (newWindow.closed) __doPostBack('Button9','')", 100);
}
-->
</script>

Problemet er at når man trykker F5 eller opdaterer på anden vis, vil onbeforeunload blive kørt, og når den er kørt 1 gang, så synes den at fjerne det jeg har lagt på 'newWindow.onbeforeunload' så det prøver jeg at sætte på igen, men det gider den kun, hvis jeg har en alert(); hvis jeg fjerner den, så virker denne linie ikke

  setTimeout("newWindow.onbeforeunload = clickButton_Button9", 100);

lidt hjælp ville være formiddabelt
Avatar billede olebole Juniormester
22. maj 2007 - 15:03 #1
<ole>

newWindow eksisterer jo ikke i dokumentet, efter en evt. reload  =)

/mvh
</bole>
Avatar billede Slettet bruger
22. maj 2007 - 15:07 #2
java og javascript er ikke det samme.
Du har smidt det i javascript afdelingen, og din kode er javascript, men du søger en java ekspert.

Men tror du mener javascript.

Men fair nok.
Avatar billede mrbonus Novice
22. maj 2007 - 15:14 #3
coldgate, detalje, men jo selvfølge er det er javascript ekspert jeg søger, når min kode er i javascript, og posten er oprettet i javascript

olebole, måske forklarede jeg mig ikke godt nok, det er det "åbnede vindue" som bliver opdateret, ikke den side med javascripten, den vil ligge i baggrunden, og ikke blive opdateret, for man kan kun se det "åbnede vindue"
Avatar billede olebole Juniormester
22. maj 2007 - 15:50 #4
Prrøv at lægge et link til et eksempel
Avatar billede mrbonus Novice
22. maj 2007 - 16:28 #5
YES, er ikke lige sikker på hvilken ændring der gjorde at det virkede, men dette virker i hvert fald, nu er den eneste bagside at selve siden med javascriptet ikke er disablet ligesom den bliver i Internet Explorer.

<script language='javascript'>
<!--
var newWindow;
function showModelDialog_Button9(evt)
{
    stopEvent(evt);
        document.getElementById('Button9').disabled = true;
  if (window.showModalDialog) {
      window.showModalDialog('Default.aspx','','dialogHeight: 300px; dialogWidth: 300px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: Yes;');
        __doPostBack('Button9','');
  } else {
      newWindow = window.open('Default.aspx','', 'height=300,width=300,toolbar=no,directories=no,status=no,linemenubar=no,scrollbars=no,resizable=no,modal=yes');
      newWindow.onbeforeunload = clickButton_Button9
  }
}
function clickButton_Button9()
{
    document.getElementById('Button9').disabled = false;
  setTimeout("newWindow.onbeforeunload = clickButton_Button9", 100);
  setTimeout("if (newWindow.closed) __doPostBack('Button9','')", 100);
}
-->
</script>
Avatar billede olebole Juniormester
24. maj 2007 - 11:54 #6
Gad vide, om det stavefejlen, der gjorde kommentaren uforståelig(?) Prøver lige igen:
Prøv at lægge et link til et eksempel
Avatar billede mrbonus Novice
24. maj 2007 - 12:01 #7
Jeg har ikke lige nogen offentlig IIS jeg kan smide projektet på desværre
Avatar billede mrbonus Novice
24. maj 2007 - 12:15 #8
Men har lavet et rent eksempel du kan afprøve, hvis du bare gemmer det i en html fil

<html>
<body>
<script language='javascript'>
<!--
var newWindow;
function showModelDialog_Button9(evt)
{
  stopEvent(evt);
  document.getElementById('Button9').disabled = true;
  if (window.showModalDialog) {
      window.showModalDialog('http://www.google.dk','','dialogHeight: 300px; dialogWidth: 300px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: Yes;');
        document.getElementById('Button9').disabled = false;
        alert('window closed');
  } else {
      newWindow = window.open('http://www.google.dk','', 'height=300,width=300,toolbar=no,directories=no,status=no,linemenubar=no,scrollbars=no,resizable=no,modal=yes');
      newWindow.onbeforeunload = clickButton_Button9
  }
}
function clickButton_Button9()
{
  document.getElementById('Button9').disabled = false;
  setTimeout("newWindow.onbeforeunload = clickButton_Button9", 100);
  setTimeout("if (newWindow.closed) alert('window closed');", 100);
}
function stopEvent(evt)
{
  if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1)
    event.returnValue=false;
  else
    evt.preventDefault();
}
-->
</script>

<input id="Button9" type="button" value="tryk" onclick="showModelDialog_Button9(event);" />
</html>
</body>

Blev nødt til at erstatte __doPostBack() men en alert(), og sætte denne linie
        document.getElementById('Button9').disabled = false;
ind ved showModalDialog, da den normalt lavede et postback.
Avatar billede mrbonus Novice
24. maj 2007 - 12:16 #9
lol, kan se at de sidste 2 sluttags er blevet byttet om, hehe, det er selvfølgelig body der skal være først
Avatar billede olebole Juniormester
24. maj 2007 - 15:05 #10
Jeg forstår ikke dit problem ... du må forklare dig noget tydeligere  =)
Avatar billede mrbonus Novice
25. maj 2007 - 06:44 #11
Er heller ikke så vigtigt, får som du kan læse i kommentar nummer 5, fandt jeg en løsning på problemet, så jeg lukker tråden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester