webForumDet fria alternativet

Skicka Titel på sidan

JavaScript

12 svar · 894 visningar · startad av startail

Medlem sedan sep. 2000155 inlägg
Frågan#1

Jag har ett javascript som skall öppna ett nytt fönster och skicka info om den sidan man är på.
Jag har fått reda på att jag kan göra

javascript:void(AddLinkWindow=window.open('http://www.greyleaf.net/add_link.php?title='+escape(window.location.href), 'AddLink','width=400,height=50,scrollbars=yes,toolbar=no,location=no'));

för att skicka web adressen, men hur kan jag göra för att skicka titeln på sidan?

Om jag gör

javascript:void(AddLinkWindow=window.open('http://www.greyleaf.net/add_link.php?title='+escape(window.title), 'AddLink','width=400,height=50,scrollbars=yes,toolbar=no,location=no'));

får jag bara undefined.

Någon som kan hjälpa mig?

Medlem sedan juli 2000836 inlägg
#2

prova:

javascript:void(AddLinkWindow=window.open('http://www.greyleaf.net/add_link.php?title='+escape(document.title),  'AddLink','width=400,height=50,scrollbars=yes,toolbar=no,location=no'));
Medlem sedan sep. 2000155 inlägg
#3

Det funkade bra det.
Men jag har problem med att åäö inte fungerar när det skickas med.

Det enda jag ser är massa ?

Medlem sedan juni 20004 308 inlägg
#4

Det borde fungera eftersom du använder escape, men hur tas informationen om hand sedan? Använder du der serverside med php eller är det JavaScript på nästa sida också? (Kan du länka till sidan?)

Medlem sedan sep. 2000155 inlägg
#5

Jag använder serverside med PHP.

Just nu testar jag bara med att skriva ut det med $_GET['title']. Det är en linux server som använder sig av en_us.UTF-8 så det borde kunna hantera åäö också. Det gör det iaf överallt på sidan annars.

Medlem sedan sep. 2000155 inlägg
#6

När jag gör det på tex den här sidan så blir länken ...

[url]http://www.greyleaf.net/add_link.php?data=webForum%20-%20Skicka%20Titel%20p%E5%20sidan[/url]

Jag antar att det här är mera PHP fråga än javascript.

Men jag antar att jag måste göra en unescape på allting som kommer in igen?

För att få tillbaka det med PHP så testade jag detta och det funkade då.

$_GET['data'] = str_replace(array("å","ä","ö","Å","Ä","Ö"), array("& aring;","& au
ml;","& ouml;","& Aring;","& Auml;","& Ouml;"), $_GET['data']);

(utan mellanslag i &-kod då wF konvertera detta automatiskt)

Medlem sedan sep. 20021 655 inlägg
#7

Om du skickar med en header som säger att det är ISO-8859-1 så visas det rätt.

Medlem sedan sep. 2000155 inlägg
#8

Hur gör man det i en länk?

Medlem sedan juni 20004 308 inlägg
#9

Det kan du inte. Det är servern som bestämmer vilken teckenuppsättning som skall specificeras (om någon) i http-headern. Du kan dock använda en meta-tagg för att tala om vilken teckenuppsättning som skall användas.

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Medlem sedan juni 20004 308 inlägg
#10

Hittade denna utf-8 encoder på experts-exchange

var digits ="0123456789abcdef";
var hex = new Array( 256 );
for( var idx = 0; idx < 256; idx++ )
    hex[ idx ] = "%" + digits.charAt( idx >> 4 ) + digits.charAt( idx & 0xf );

function encode( s )
{
    var sbuf = "";
    var len = s.length;
    for( var i = 0; i < len; i++ ) {
      var ch = s.charAt(i);
      
      if( /[A-Za-z0-9-_.!~*'()]/.test( ch ) ) {
        sbuf += ch;
      } else{
         var cc = s.charCodeAt(i);
         if (cc <= 0x007f) {          // other ASCII
            sbuf += hex[cc];
         } else if (cc <= 0x07FF) {          // non-ASCII <= 0x7FF
            sbuf += hex[0xc0 | (cc >> 6)]
                 + hex[0x80 | (cc & 0x3F)];
         } else {                         // 0x7FF < ch <= 0xFFFF
            sbuf += hex[0xe0 | (cc >> 12)]
                 + hex[0x80 | ((cc >> 6) & 0x3F)]
                 + hex[0x80 | (cc & 0x3F)];
         }
      }
    }
    return sbuf;
}
Medlem sedan sep. 2000155 inlägg
#11

Hur gör jag för att göra detta med PHP variabler som jag har? Om jag tex vill ge den data från $data och sedan skicka den till $data igen ?

Medlem sedan sep. 2000155 inlägg
#12

Löste det...

utf8_encode($var);

Jag skall encoda variabeln jag får in för att den skall läsa den rätt igen... *sliter hår*

Medlem sedan juni 20004 308 inlägg
#13

Kom inte datat från titeln på sidan, document.title?
Prova att ändra escape(document.title) till encode(document.title)

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)