Avatar billede leif Seniormester
30. april 2006 - 01:18 Der er 12 kommentarer og
1 løsning

Confirm i JS popup

Hej,

Jeg bruger et JavaScript til at lave en PopUp med et billede, i det vindue skulle der gerne være en Slet knap med en Advarsel boks på, så jeg har prøvet til tilføje:
'<\script type="text/javascript" language="javascript">'+
'function confirmLink(theLink, theSqlQuery)'+
'{'+
'    var confirmMsg  = \'Er du sikker på at du vil \';'+
'    if (confirmMsg == \'\' || typeof(window.opera) != \'undefined\') {'+
'        return true;'+
'    }'+
''+
'    var is_confirmed = confirm(confirmMsg + \' :\n\' + theSqlQuery);'+
'    if (is_confirmed) {'+
'        theLink.href += \'&is_js_confirmed=1\';'+
'    }'+
''+
'    return is_confirmed;'+
'} '+
'<\/script>'+

og så tilføje til min <a href="slet.php"> onclick="return confirmLink(this, \'Slette billedet\')"

Men den springer direkte til slet.php uden at komme med advarsel.

Hvad har jeg gjort galt ?

Fra
Leif
Avatar billede mclemens Nybegynder
30. april 2006 - 01:32 #1
Virker denne hos dig?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
function confirmLink(theLink, theSqlQuery){

var confirmMsg  = 'Er du sikker på at du vil ';

  if (confirmMsg == '' || typeof(window.opera) != 'undefined') {
        return true;
    }

    var is_confirmed = confirm(confirmMsg + ' :\n' + theSqlQuery);
    if (is_confirmed) {
        theLink.href += '&is_js_confirmed=1';
    }

    return is_confirmed;
}
</script></head>

<body>

<a href="slet.php" onclick="return confirmLink(this, 'Slette billedet');">a</a>

</body></html>
Avatar billede mclemens Nybegynder
30. april 2006 - 01:46 #2
hvis ja, så ved jeg ikke med escapen i denne streng i starten:

'<\script type="text/javascript" language="javascript">'+

\s <- ved ikke om du skal escape s ... ellers skal den fjernes

du har andre steder escaped / med \/ hvis det er nødvendigt mangler du en escape i type="text/javascript" -> type="text\/javascript"

(OT: language="javascript" <- bør fjernes da type defineringen er nok idag)
Avatar billede leif Seniormester
30. april 2006 - 01:59 #3
Ja, den første virker fint, var nemlig mit udgangspunkt.

Selvom jeg ændrer den til type="text\/javascript" og alt det andet, så den ser sådan ud:
'<script type="text\/javascript">'+
'function confirmLink(theLink, theSqlQuery)'+
'{'+
'    var confirmMsg  = \'Er du sikker på at du vil \';'+
'    if (confirmMsg == \'\' || typeof(window.opera) != \'undefined\') {'+
'        return true;'+
'    }'+
''+
'    var is_confirmed = confirm(confirmMsg + \' :\n\' + theSqlQuery);'+
'    if (is_confirmed) {'+
'        theLink.href += \'&is_js_confirmed=1\';'+
'    }'+
''+
'    return is_confirmed;'+
'} '+
'<\/script>'+


Så ændrer det ikke på at det ikke virker.
Avatar billede mclemens Nybegynder
30. april 2006 - 02:09 #4
Prøv at poste den javascript kode serveren spytter ud som resultat
af ovenstående... Det gør forsøg på fejlfindingen lettere... :)
Avatar billede mclemens Nybegynder
30. april 2006 - 02:09 #5
(først tilbage imorgen)
Avatar billede leif Seniormester
30. april 2006 - 10:38 #6
<script type="text/javascript">
function confirmLink(theLink, theSqlQuery)
{
    var confirmMsg  = 'Er du sikker på at du vil ';
    if (confirmMsg == '' || typeof(window.opera) != 'undefined') {
        return true;
    }

    var is_confirmed = confirm(confirmMsg + ' : ' + theSqlQuery);
       
    if (is_confirmed) {
    theLink.href += '&is_js_confirmed=1';
    }
   
    return is_confirmed;
}
</script>
Avatar billede mclemens Nybegynder
30. april 2006 - 11:17 #7
hmmm, scriptet som den outputter fejler ikke noget... så skal det være nogle variabel navne som konflikterer med browserens fortolkning af scriptet (hvis nu du bruger de samme navne som id eller name på siden)... prøv at indsætte dette før function:

<script type="text/javascript">

var confirmMsg,theSqlQuery,is_js_confirmed,theLink.href,is_confirmed;

function confirmLink(theLink, theSqlQuery) ...

... Næste mulighed er at du har et andet script, der konflikterer med dette script... men hvis ovenstående ikke hjælper, så skal der næsten et link til (nok ikke optimal, når vi snakker om slette knapper) ... eller evt. et fuldstændigt html output eksempel med alt indhold, d.v.s. en statisk html fil der giver fejlen (f.eks. hele den html fil den outputter).
Avatar billede leif Seniormester
30. april 2006 - 12:00 #8
Jeg har lagt det online på: http://ljnet.dk/exp/706201/
Avatar billede mclemens Nybegynder
30. april 2006 - 12:26 #9
\n -> \\n ... ellers breakede den javascript linjen og stoppede javascriptet...




function popup(filNavn,filText) {
imageWin=window.open("", "imageWin", filNavn, "width=100, height=100");
imageWin.document.open();
imageWin.document.write(
'<html>'+
'<head>'+
'<title>Billede</title>'+
'<script type="text/javaScript">'+
'self.focus();'+
'function myResize() {'+
'picW = document.images["pic"].width;'+
'picH = document.images["pic"].height;'+
'picW = picW+10;'+
'picH = picH+37+75;'+

'if(picW > screen.availWidth)'+
'{'+
'picW = screen.availWidth'+
'}'+
'if(picH > screen.availHeight)'+
'{'+
'picH = screen.availHeight'+
'}'+

'window.resizeTo(picW,picH);'+
'}'+
'</script>'+


'<script type="text/javascript">'+
'function confirmLink(theLink, theSqlQuery)'+
'{'+
'    var confirmMsg  = \'Er du sikker på at du vil \';'+
'    if (confirmMsg == \'\' || typeof(window.opera) != \'undefined\') {'+
'        return true;'+
'    }'+
''+
'    var is_confirmed = confirm(confirmMsg + \' :\\n\' + theSqlQuery);'+
'    if (is_confirmed) {'+
'        theLink.href += \'&is_js_confirmed=1\';'+
'    }'+
''+
'    return is_confirmed;'+
'} '+
'</script>'+

'</head>'+
'<body bgcolor="#000000" text="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0"

marginheight="0" onload="myResize();">'+

'<DIV STYLE="width: 100%; height: 100%; overflow: auto; font-size:12px; text-align:center;

cursor:hand">'+

'<img src="' +  filNavn + '"  NAME="pic"><br />'+

'<a href="#" onclick="window.close()" style="color: white;">Luk</a> - <a href="slet.php"

onclick="return confirmLink(this, \'Slette billedet\')" style="color: white;">Slet</a>'+

'</DIV>'+

'</body>'+
'</html>' );
imageWin.document.close();
}
Avatar billede mclemens Nybegynder
30. april 2006 - 12:29 #10
... fjernede også nogle escapes på / ...
Avatar billede leif Seniormester
30. april 2006 - 18:21 #11
Så virkede det uden problemer.
Avatar billede leif Seniormester
30. april 2006 - 18:22 #12
Thanks
Avatar billede mclemens Nybegynder
30. april 2006 - 19:52 #13
- det var så lidt :)
og tak for point :)
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