Avatar billede ice-t Nybegynder
30. juni 2008 - 15:16 Der er 2 kommentarer

Opener fryser

Hej alle sammen

Mit script virker for det meste, men en gang i mellem, så får det siden den skal submitte til til at fryse. (Endda så meget, at man bliver nødt til at ctrl+alt+delete lukke explore).. Hjælp

Sådan bliver siden fx kaldt:
<textarea rows="6" name="lang_column1" id="lang_column1" cols="25" onClick="window.open('headingText.asp?id=lang_column1', 'list')"><%=objRS("column1")%></textarea>


og her er koden:
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--

function pick(symbol) {
    if (window.opener && !window.opener.closed) {
        var tempText = "";
          for (var i=0; i<symbol.length; i++) {
              if (i%2 == 0) {
                  tempText += "<HEADING>" + symbol[i].value + "</HEADING>";
              } else {
                  tempText += "<TEXT>" + symbol[i].value + "</TEXT>";
              }
          }
         
        tempText = tempText.replace(/<HEADING><\/HEADING><TEXT><\/TEXT>/g, "");
         
        window.opener.document.getElementById("<%=request.querystring("id")%>").value = tempText;
    }
    window.close();
}

function addSubsection() {
    document.getElementById("subsection").innerHTML += "<table border='0'><tr><td width='100' valign='top'>Heading:</td><td><input type='text' name='textField' value=''></td></tr></table>"
    document.getElementById("subsection").innerHTML += "<table border='0'><tr><td width='100' valign='top'>Text:</td><td><textarea cols='50' rows='15' name='textField'></textarea></td></tr></table>"
}

function getAllText() {
    var allText = window.opener.document.getElementById("<%=request.querystring("id")%>").value;
    allText = allText.replace(/<\/HEADING>/g, "")
    allText = allText.replace(/<\/TEXT>/g, "")
   
    var subsections = allText.split("<HEADING>");
   
    if (subsections[0] != "") {
        subsections[0] = subsections[0].replace(/<TEXT>/g, "")
        document.getElementById("subsection").innerHTML += "<table border='0'><tr><td width='100' valign='top'>Heading:</td><td><input type='text' name='textField' value=''></td></tr></table>";
        document.getElementById("subsection").innerHTML += "<table border='0'><tr><td width='100' valign='top'>Text:</td><td><textarea cols='50' rows='15' name='textField'>" + subsections[0] + "</textarea></td></tr></table>";
    }
   
    var tempDivide;
   
    for (i=1; i<subsections.length; i++) {
        tempDivide = subsections[i].split("<TEXT>");
        document.getElementById("subsection").innerHTML += "<table border='0'><tr><td width='100' valign='top'>Heading:</td><td><input type='text' name='textField' value='" + tempDivide[0] + "'></td></tr></table>";
        document.getElementById("subsection").innerHTML += "<table border='0'><tr><td width='100' valign='top'>Text:</td><td><textarea cols='50' rows='15' name='textField'>" + tempDivide[1] + "</textarea></td></tr></table>";
    }
   
}

// -->
</SCRIPT>
</HEAD>
<BODY onload="getAllText()">

<form name="inputForm" onSubmit="pick(this.textField)">
    <span id="subsection" name="subsection"></span>
    <a href="java script:addSubsection()">add new subsection</a><br>
    <input type="submit" value="Submit">
</form>

</BODY>
</HTML>
Avatar billede w13 Novice
08. juli 2008 - 12:49 #1
Det sker vel, når symbol.length er ugyldig. Prøv at rette:

var tempText = "";

til:

var tempText = "";
symbol=symbol.value;
if(!symbol){
    alert("Du har ikke udfyldt tekstfeltet!");
    return false;
}
Avatar billede ice-t Nybegynder
09. juli 2008 - 17:21 #2
Det var desværre ikke løsningen.. Fejlbeskrivelsen fra brugeren lyder sådan:

"Først gik det uden problemer, men ved 2. forsøg var det samme fejl som før. Jeg kan ændre teksten uden problemer i pop-up vinduet og også lukke det, men kan ikke save siden derefter. Jeg får ingen fejlmeddelelser."

(fejlmeddelelser = scriptfejl fra IE)
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