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'));
12 svar · 894 visningar · startad av startail
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?
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'));
Det funkade bra det.
Men jag har problem med att åäö inte fungerar när det skickas med.
Det enda jag ser är massa ?
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?)
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.
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)
Om du skickar med en header som säger att det är ISO-8859-1 så visas det rätt.
Hur gör man det i en länk?
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" />
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;
}
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 ?
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*
Kom inte datat från titeln på sidan, document.title?
Prova att ändra escape(document.title) till encode(document.title)