---
title: "return value i firefox och modalwindow"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/154752-return-value-i-firefox-och-modalwindow"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Addeladde"
published: "2006-12-11T01:29:47.000Z"
updated: "2006-12-13T10:43:05.000Z"
replies: 6
views: 539
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/154752-return-value-i-firefox-och-modalwindow"
---

# return value i firefox och modalwindow

## #1 — Addeladde, 2006-12-11T01:29Z

Hej

Jag har en länk som ser ut på följande sätt.

```
<a onclick="return confirmDelete(...)" href="__dopostback('blbla','')"></a>
```

Sedan ser javascript koden ut så här:

```
function modalDialogShow(url,width,height){
  if (window.showModalDialog) {
    var returnValue = window.showModalDialog(url,"","dialogWidth:"+width+"px;dialogHeight:"+(height+42)+"px");
	return returnValue;
  } 
	else {
	  var left = screen.availWidth/2 - width/2;
      var top = screen.availHeight/2 - height/2;
      activeModalWin = window.open(url, "", "width="+width+"px,height="+height+",left="+left+",top="+top+",modal=yes");
  }
} 

function confirmDelete(confirmText, pageTitle, baseURL, eventTarget){
  var returnValue= false;
  returnValue = modalDialogShow(baseURL+'modalpageshow.aspx?page='+escape('confirmDelete.aspx?confirmText='+confirmText)+'&pageTitle='+escape(pageTitle),380,125)
  if(returnValue){
    return true
  }
  return false;
}

function deleteDo(){
  return true;
}
```

Eftersom Firefox inte hanterar returnValue så i sidan som öppnas i popupfönstret kör du funktionen deleteDo()

Men det funkar inte eftersom firefox redan har fått return false efter som den kör igenom hela confirmDelete funktionen och inte väntar på att fönstret ska stängas först.

Hur löser jag detta? Jag måste få min funktion att returnera true till länken.

Permalänk: https://www.webforum.nu/p/154752

## #2 — Peter S, 2006-12-11T10:02Z

I den översta funktionen returnerar du ett värde om showModalDialog stödjs. Detta stycke körs inte i FF varför else-satsen hoppas in i och där returneras ingenting. Varför inte lägga till *return activeModalWin* så att modalDialogShow()s returnvärde evalueras till sant?

Permalänk: https://www.webforum.nu/p/1909056

## #3 — Addeladde, 2006-12-11T19:57Z

Problemet är då att den returnerar true direkt men jag vill ju att den ska returnera true om jag trycker på ja knappen i fönstret som öppnas:

Kod på fönstret som öppnas:

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<script>
function submitForm(){
  if(window.showModalDialog){
	  if(parent.window.opener)
	    parent.window.opener.deleteDo();
	  else
        returnValue=true;
  }else{
    window.opener.deleteDo();
  }
	self.close();
}
</script>
</head>
<body class="confirmDeletePageBody" onLoad="document.del.Yes.focus();" oncontextmenu="return false" scroll="no">
<form action="" name="del" method="post" onSubmit="submitForm()" style="margin: 0px;">
<table width="350" border="0" cellpadding="0" cellspacing="0">
  <tr> 
    <td width="55" rowspan="2" align="left" valign="top" >
        &nbsp;</td>
    <td height="60" align="left" valign="top">
        Vill du radera?
      <br>
    </td>
  </tr>
  <tr> 
    <td colspan="2" width="200" align="center" valign="top"><input name="Yes" type="submit" class="ButtonW100" id="Yes" value="Ja">
      &nbsp;<input name="No" type="button" class="ButtonW100" id="No" onClick="self.close()" value="Nej"> 
    </td>
  </tr>
</table>
  </form>
</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1909211

## #4 — Peter S, 2006-12-13T10:20Z

Då kan det vara enklare att göra så här

```
<a onclick="return confirmDelete(...,'{loc:location,href:this.href}')" href="__dopostback('blbla','')"></a>  //a.href-värdet kan ställa till det

function confirmDelete(...,props)
{
  if (window.showModalDialog){
    showModalDialog('...',props,'...');  //du kanske vill använda window.open även här(?)
  } else {
    window.open(...);
  }
  return false;
}

/* popupfönstret */
<form onsubmit="return submitForm()"...

function submitForm()
{
  if (window.showModalDialog){
    window.dialogArguments.loc.href = window.dialogArguments.href;
    window.close();
  } else {
    //ingen dialogArgs här, kanske fånga upp värdet i frågesträngen med unescape()
  }
}
```

Permalänk: https://www.webforum.nu/p/1909614

## #5 — Addeladde, 2006-12-13T10:25Z

problemet är att på ASP.NET sidor så är det bara ett formulär och det är flera olika formulärfunktioner i den. Den lösning som du redovisar ovan har jag använt mig av på traditionella asp-sidor. Men med postback i asp.net blir det svårare.

Permalänk: https://www.webforum.nu/p/1909619

## #6 — Peter S, 2006-12-13T10:32Z

Så resultatet av att klicka på

```
<a href="_postback(...)"></a>
```

blir inte detsamma som

```
<a name="lnk" href="_postback(...)"></a>
<script>location.href = document.links["lnk"].href;</script>
```

?

Permalänk: https://www.webforum.nu/p/1909621

## #7 — Addeladde, 2006-12-13T10:43Z

sorry jag missförstod lösningen först. Så klart att det ska funka.
Såg onSubmit men det var ju på popupfönstret.

Tack!

Permalänk: https://www.webforum.nu/p/1909625

---

Tråden på webben: https://www.webforum.nu/amne/javascript/154752-return-value-i-firefox-och-modalwindow
