2017-01-06 2 views
3

Ich verwende den Google Maps iframe, um eine Karte auf meiner Website zu generieren. Der iframe sieht wie folgt aus:Suchen und ersetzen Sonderzeichen in URL - jQuery

<iframe id="googlemap" width="199" height="199" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/place?key=KEY&zoom=14&language=nb&q=Møllesvingen+2,0854+OSLO"></iframe> 

Wenn Sie das Attribut src Sie sehen, dass es die Sonderzeichen ‚ø‘ ist die Ich mag würde mit %C3%B8 (UTF-8 Bytes) ersetzen.

Ich habe es mit mehreren Replace-Funktionen versucht, aber nichts scheint zu funktionieren. Hier ist, was ich jetzt bin versucht:

var src; 

src = $('#googlemap').attr('src'); 

src.replace('ø', '%C3%B8'); 

Aber es funktioniert nicht. Hoffe, dass jemand helfen kann.

Vielen Dank im Voraus!

+0

Wie wird der 'src' anfangs eingestellt? Es wäre viel besser, es dort zu ändern, als die Risse mit JS –

+0

zu verputzen. Sie müssen 'src' Eigenschaft use' $ ('# googlemap') zurücksetzen. Attr ('src', function (_, src) {return src.replace ('ø', '% C3% B8');}); ' – Satpal

+0

hast du' escape() ',' encodeURI() 'oder sowas in Betracht gezogen? – user3154108

Antwort

3

Sie müssen die Codierung hinzufügen. Versuchen Sie dieses,

src = $('#googlemap').attr('src'); 
src = encodeURI(src); 
$('#googlemap').attr('src', src); 
+0

Danke. Das hat sehr gut funktioniert. –

+0

Großartig, gut zu wissen! – pravid

0
str.replace(/[ø]/g,'%C3%B8'); 

Verwendung regulärer Ausdruck, es zu lösen. Der obige Code ersetzt das Sonderzeichen.

+0

Es gibt keine Notwendigkeit, die Dinge hier zu erschweren. 'encodeURI' macht den Job sehr gut. – 31piy

0

Es tut tatsächlich. Die Funktion replace gibt eine neue Zeichenfolge zurück. Speichern Sie einen neuen String in der Variablen und ändern Sie den Quellcode zurück.

var src; 
var newStr; 

src = $('#googlemap').attr('src'); 

newStr = src.replace('ø', '%C3%B8'); 

console.log(src); 
console.log(newStr); 

$('#googlemap').attr('src', newStr);