Script i src, i kod pomiędzy tagami, JSON

Odpowiedz Nowy wątek
2011-07-26 11:53
0

Witam, oglądnąłem sobie źródło pewnej strony:
http://www.alittlebitofsomething.co.uk/

I zaciekawił mnie taki urywek:

<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
  {lang: 'en-GB'}
</script>

Chodzi o to co jest w postaci JSON : {lang: 'en-GB'} pomiędzy tagami script. Jak to działa, jak google niby pobiera dane z zmiennej lang? Przecież jak jest atrybut src, to kod pomiędzy tych tagów się nie wykonuję.


Pozostało 580 znaków

2011-07-26 12:06
0

heh, pisałem już na wykopie, że ten koleś nie zna javascriptu :D

Skoro już rozmawiamy o znaczniku script to dorzucę swoje 3 grosze. W html5 można nie pisać atrybutu "type", ale nie rozumiem dlaczego nikt nie pomyślał o tym, żeby można było pisać:
<script src="skrypt.js" />zamiast:
<script src="skrypt.js"></script>

edytowany 5x, ostatnio: kamdz, 2011-07-26 12:24

Pozostało 580 znaków

2011-07-26 13:35
0

Bo HTML to chory twór. Niektóre tagi muszą mieć body, niektóre nie, niektórych nie wolno zamykać, niektóre muszą zostać zamknięte... XHTML miał to wszystko przynajmniej ustandaryzowane, ale to martwy format.


Women were the reason I became a monk - and, ah, the reason I switched back...

Pozostało 580 znaków

2011-07-26 14:51

1) {lang: 'en-GB'} to nie jest JSON
2) w window.GOOGLEAPIS.gwidget jest tworzony objekt lang i tam jest przypisana jego wartosc, czyli 'en-GB'. Jak zmienisz to na {lang2: 'juhu', lang3: 'nana'} to zostanie w gwidget odpowiednio utworzone objekty lang2 i lang3
3) jak to jest robione? daje na to (tak 90%), ze ktorys ze skryptow analizuje zawartosc miedzy tymi tagami. Zawartosc jest przerabiana przez eval(). W wyniku powstaje objekt, ktorego wlasciwosci dzieki reflection mozna przypisac do
GOOGLEAPIS.gwidget. Np:

var obj = eval('zwartosc miedzy tagami script');
for(prop in obj){
   __GOOGLEAPIS.gwidget[prop]=obj[prop];
}
edytowany 2x, ostatnio: mwili, 2011-07-26 14:54

Pozostało 580 znaków

2011-07-26 16:06
0

A myślałem po prostu, że to jakiś trick, o którym nie wiedziałem... czyli nic nowego się nie dowiedziałem o JS.

A co do

1) {lang: 'en-GB'} to nie jest JSON

Jeśli to nie format JSON to co?


edytowany 1x, ostatnio: bordeux, 2011-07-26 16:07

Pozostało 580 znaków

2011-07-26 16:58
0

JSON jest tu opisany:
http://www.json.org/
i przyjmuje format: {"string":value [, itp...] }

a {lang: 'en-GB'} jest zwyklym objektem (nie odpowiada formatowi zapisu jaki ma JSON).

var obj = {lang: 'en-GB'};

jest ekwiwalentne do

var obj =  new Object();
obj.lang =  'en-GB';
edytowany 3x, ostatnio: mwili, 2011-07-26 17:05

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0