Sök  
 
Skribent Inlägget Löst
Google
 
     

  Forum » HTML / CSS / JavaScript » funktionen MM_openBrWindow() hanterar ej sv tecke  
 
Skriven av: LaMo | den 9 juli 2014 Kl 08:05
funktionen MM_openBrWindow() hanterar ej sv tecke
Hej,

Jag har problem med javascript-funktionen 'MM_openBrWindow(..)'-

Jag använder den i en (klassisk) Asp sida Page1.asp för att öppna en annan Asp Page2.asp i pop up stil.
Jag skickar ett ord  från Page1 till Page2 med några svenska tecken (å,ä,ö) (som ju alla har utökade ascii värden - mellan 129 och 256).
När ordet visas i Page2 har alla svenska tecken vita rektanglar (= ej identifierade).

Båda sidorna har <meta charset="utf-8">.
Problemet verkar vara kopplat till funktionen MM_openBrWindow().
Den hanterar tydligen inte utökade ascii värden.

Detaljer:
Kod i Page1.asp:
<%@language=VBScript%>
---
<meta charset="utf-8">
---
<%
Dim wCaplong
wCaplong ="ÅÄÖ"
%>
---
<a href="javascript:document.submit();"
onClick="return MM_openBrWindow('Page2.asp?CtrlInName=<%=wCapLong%>', 'Page2', 'height=335,width=545,status=no,toolbar=no')">              
<img src="images/targetBlue.jpg" ></a>
---
Kod i Page2.asp:
<%@language=VBScript%>
---
<meta charset="utf-8">
---
<%
Dim NameIn
NameIn = Request.Querystring("CtrlInName")
%>
---
'NameIn' i Page2 består nu av tre vita rektanglar.

Normalt så behålls utökade ascii tecken när ett ord skickas mellan två Asp sidor.
Men nu används MM_openBrWindow().
Finns det en annan bättre version av MM_openBrWindow()?

Jag gjorde en workaround där jag konvertera ordet "ÅÄÖ" till ett ord av ascii värden ("143_142_153_") som skickas till Page2 och där konverteras tillbaka till läsliga tecken med hjälp av funktionen ChrW([asciivalue]) - som till skillnad från den gamla Chr([asciivalue]) också hanterar utökade ascii värden.

Men jag hoppas att det finns enklare lösningar??

/Lars



Redigerad av: LaMo


Redigerad av: LaMo

Antal svar 4




Skriven av: LaMo | den 9 juli 2014 Kl 08:07
Rubriken ska vara:

funktionen MM_openBrWindow() verkar inte hantera  svenska tecken?

Redigerad av: LaMo
Skriven av: KajKolberg | den 9 juli 2014 Kl 20:46
1. Säkerställ att du har rätt codepage:
Kod:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>


2. Säkerställ att filerna är sparade som UTF-8 filer (majoriteten av de nya editorerna gör detta automatiskt)

Annars tycker jag att du ska använda dig direkt av window.open() istället. För om jag förstår det hela rätt så anropas window.open() av MM_openBrWindow(). Jag tror att MM_openBrWindow() är en funktion som genereras av DreamWeaver? Rätta mig om jag har fel.
Skriven av: LaMo | den 10 juli 2014 Kl 07:56
Hej Kaj,

tack för att du visar intresse!!

1. har angiven codepage.
2. använder dreamweaver CS3, utgår från att filerna sparas som utf-8..

Helt riktigt kan man använda Window.open istället för MM_openBrWindow.
För MM_openBrWindow gör bara ett anrop av window.open.
Men det gör ingen skillnad.
Så jag kunde lika gärna ha sagt: 'Window.open' hanterar ej svenska tecken i ASP-anrop.

Jag har testat vidare och funnit detta:

Från Page1 kan jag göra tre olika anrop:
Anrop1:
<Form name="testform" action="Page2.asp" method="get" enctype="application/x-www-form-urlencoded" target="_blank">
<a href='javascript:document.testform.submit()'>
<img src="images/ targetBlue.jpg " alt="klick" />
</a>
<input type="hidden" name="text1" value="ÅÄÖÉ" />
</form>
---
Detta fungerar m a p ÅÄÖÈ (bra) men öppnar i samma (ny tab) och ej nytt fönster (ej bra).

Anrop2  försök 1:
<a href="javascript:document.submit();"
onClick="return MM_openBrWindow('Page2.asp?text1="ÅÄÖÉ"', 'page2', 'height=335,width=545,status=no,toolbar=no')">  
<img src="images/targetBlue.jpg"></a>
---
Detta fungerar inte m a p ÅÄÖÉ (ej bra), men öppnar i eget fönster (bra).

Anrop2 alternativ (obs inga "" runt ÅÄÖÉ !):
<a href="javascript:document.submit();"
onClick="return MM_openBrWindow('Page2.asp?text1=ÅÄÖÉ', 'page2', 'height=335,width=545,status=no,toolbar=no')">  
<img src="images/targetBlue.jpg"></a>
---
Detta öppnar i nytt fönster (bra) och visar 'ÅÄÖÉ' (bra).

Anrop3, ASP:
<%
dim Name1
Name1 = "ÅÄÖÉ"
%>
<a href="javascript:document.submit();"
onClick="return MM_openBrWindow('Page2.asp?text1=<%=Name1%>', 'page2', 'height=335,width=545,status=no,toolbar=no')">  
<img src="images/targetBlue.jpg"></a>
---
Detta öppnar i nytt fönster (bra) men visar inte ÅÄÖÉ utan rektanglar (ej bra).

Således: När man skickar ÅÄÖÉ direkt som text så fungerar det, men när man gör det som en ASP-parameter så funkar ej extended ascii.
Då jag har ASP-anrop så fortsätter jag väl med min workaround att konvertera till Asci-värden, skicka över och sedan konvertera tillbaka till läsbara tecken...

Om inte du eller någon annan har någon bra idé?

/Lars




    
Skriven av: LaMo | den 11 juli 2014 Kl 09:35
Det verkar hitintills som om konvertering till ascii sträng gäller när man vill skicka en textsträng som ev innehåller svenska tecken till en ny sida, med hjälp av ASP.

För den som är intresserad skickar jag väl in kod för detta:
(och då den angivna code-sidan inte fungerar /HTTP 404/ så kommer hela koden här:)

Konvertera till asciisträng,  kod för Page1.asp:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!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&quot;&gt;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<SCRIPT language="javascript">
<!--
function MM_openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}
//-->
</SCRIPT>
<%
dim wEvSvtext
'exempel:
wEvSvtext="Österåker"    
Function fuConvertCharToAscii(instring)
    Dim i
    Dim asciistring
    asciistring = ""
    For i = 1 To Len(instring)
        asciistring = asciistring & AscW(Mid(instring, i, 1)) & "_"
    Next
    fuConvertCharToAscii = asciistring
End Function

Dim wAsciistring
wAsciistring = fuConvertCharToAscii(wEvSvtext)

%>

<title>Page1</title>
</head>

<body>
To open page2 in a new window: <br />
<a href="javascript:document.submit();"
onClick="return MM_openBrWindow('Page2.asp?strAscii=<%= wAsciistring %>', 'page2', 'height=335,width=545,status=no,toolbar=no')">  
                <img src="images/targetBlue.jpg" title="Klicka"  border="0" align="BOTTOM"></a>    
<br /><br /><br />
Ev svensk text: <%= wEvSvtext %> <br />
Converted to Asciistring: <%=wAsciistring%>
</body>
</html>


konvertera tillbaka till läsbara tecken,  kod för page2.asp:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!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&quot;&gt;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>page2</title>
</head>
<%
dim wStrAscii
dim wTextBack

wStrAscii=Request.Querystring("strAscii")
        
Function fuConvertAsciiToChar(asciistring)
    dim letter
    dim titlestring
    dim i
    dim j
    titlestring = ""
    i = 1
    Do While i <= Len(asciistring)
        j = i
        letter = ""
        Do While Mid(asciistring,j,1) <> "_"
            letter = letter & Mid(asciistring,j,1)        
            j = j + 1
            i = i + 1
        Loop
        i = i + 1  'jump over underscore
        titlestring = titlestring & ChrW(Int(letter))  'obs ChrW
    Loop
    fuConvertAsciiToChar = titlestring
end function
        
wTextBack = fuConvertAsciiToChar(wStrAscii)
%>
<body>
Incoming Asciistring: <%=wStrAscii%> <br />
Converted textfield: <%=wTextBack%> <br />
</body>
</html>


/LamO
 
     

  Svara på inlägg  
 
Du måste vara medlem på ASPsidan för att kunna skriva i forumet.
För att bli medlem klicka här.
 
     

  » Logga in  
 
Användarnamn

Lösenord

 
     

  » Bli medlem  
  Bli medlem på ASPsidan!  
     

     
  Microsoft  
     

  » Partners  
  Comsolvia  
     
  » ANNONS  
  ingen annons än  
     

  » Senast online  
  Endast för inloggade  
  Antal inloggade: 1  
     

Copyright © 2007 www.ASPsidan.se
ingen sponsrar längre ASPsidan med Dedikerad Server
ASPsidan RSS
   
 XHTML / CSS
Det tog 1,7500 sekunder att ladda sidan