Il linguaggio JavaScript
 

devo passare via jquery un'oggetto a javascript

roberta sander 6 Nov 2015 22:04
ciao devo passare via jquery un'oggetto a javascript il codice è questo

---------------------------
alert($('#flipset').attr('data-settings'));
Lightbox.defaults =$('#flipset').attr('data-settings');
//Lightbox.defaults = eval ("{" + $('#flipset').attr('data-settings') +
"}"); //questa riga da errore

//con questa funziona
ma dovrei passare l'oggetto tramite $('#flipset').attr('data-settings')

Lightbox.defaults = {
albumLabel: 'Image %1 of %2',
alwaysShowNavOnTouchDevices: false,
fadeDuration: 500,
fitImagesInViewport: true,
// maxWidth: 800,
// maxHeight: 600,
positionFromTop: 50,
resizeDuration: 700,
showImageNumberLabel: true,
wrapAround: false,
};
---------------------------

se faccio l'alert i dati da passare ce li ho infatti mi da

albumLabel: 'Image %1 of %2',
alwaysShowNavOnTouchDevices: false,
fadeDuration: 500,
fitImagesInViewport: true,
// maxWidth: 800,
// maxHeight: 600,
positionFromTop: 50,
resizeDuration: 700,
showImageNumberLabel: true,
wrapAround: false

come faccio a correggere questa riga, mi date un'aiuto?

Lightbox.defaults = eval ("{" + $('#flipset').attr('data-settings') + "}");
//questa riga da errore
Alessandro Pellizzari 7 Nov 2015 07:36
Il Fri, 06 Nov 2015 13:04:57 -0800, roberta sander ha scritto:

> ciao devo passare via jquery un'oggetto a javascript il codice è questo

jQuery È javascript. Perché devi "passargli" qualcosa?

> Lightbox.defaults =$('#flipset').attr('data-settings');
> //Lightbox.defaults = eval ("{" +
> $('#flipset').attr('data-settings') + "}"); //questa riga da errore
> //con questa funziona ma dovrei passare l'oggetto tramite
> $('#flipset').attr('data-settings')

E cosa c'è che non va?

Quando vedi un eval() nel tuo codice, sai che quel codice è sbagliato.

> albumLabel: 'Image %1 of %2',
> ...
> come faccio a correggere questa riga, mi date un'aiuto?

Quindi, se ho capito bene, hai una stringa e la vuoi trasformare in un
oggetto.

O fai il parsing a mano o costringi l'utente a inserire un JSON valido
(che è la cosa più semplice), oppure cambi l'interfaccia ed eviti di
fargli copia-incollare dei parametri, ma gli presenti un selettore per
ogni valore.

Bye.
roberta sander 7 Nov 2015 12:15
Grazie della risposta se provo a convertire la stringa in json sia con stringify
che con parse mi da errore questo è il codice

---------------
alert($('#flipset').attr('data-settings'));
Lightbox.defaults =$('#flipset').attr('data-settings');

var str = "{ "+ $('#flipset').attr('data-settings')+" }";
var obj = JSON.stringify(eval("(" + str + ")"));
//var obj = JSON.parse(str);
Lightbox.defaults = obj;

--------------

Il giorno sabato 7 novembre 2015 07:36:52 UTC+1, Alessandro Pellizzari ha
scritto:
> Il Fri, 06 Nov 2015 13:04:57 -0800, roberta sander ha scritto:
>
>> ciao devo passare via jquery un'oggetto a javascript il codice è questo
>
> jQuery È javascript. Perché devi "passargli" qualcosa?
>
>> Lightbox.defaults =$('#flipset').attr('data-settings');
>> //Lightbox.defaults = eval ("{" +
>> $('#flipset').attr('data-settings') + "}"); //questa riga da errore
>> //con questa funziona ma dovrei passare l'oggetto tramite
>> $('#flipset').attr('data-settings')
>
> E cosa c'è che non va?
>
> Quando vedi un eval() nel tuo codice, sai che quel codice è sbagliato.
>
>> albumLabel: 'Image %1 of %2',
>> ...
>> come faccio a correggere questa riga, mi date un'aiuto?
>
> Quindi, se ho capito bene, hai una stringa e la vuoi trasformare in un
> oggetto.
>
> O fai il parsing a mano o costringi l'utente a inserire un JSON valido
> (che è la cosa più semplice), oppure cambi l'interfaccia ed eviti di
> fargli copia-incollare dei parametri, ma gli presenti un selettore per
> ogni valore.
>
> Bye.
roberta sander 7 Nov 2015 12:21
Grazie della risposta ho provato a convertire la stringa in un oggetto json ma
mi da errore questo è il codice

---------------
alert($('#flipset').attr('data-settings'));
Lightbox.defaults =$('#flipset').attr('data-settings');

var str = "{ "+ $('#flipset').attr('data-settings')+" }";
var obj = JSON.stringify(eval("(" + str + ")"));
//var obj = JSON.parse(str);
Lightbox.defaults = obj;
--------------

se tolgo questo codice lascio questo funziona
Lightbox.defaults = {
albumLabel: 'Image %1 of %2',
alwaysShowNavOnTouchDevices: false,
fadeDuration: 500,
fitImagesInViewport: true,
// maxWidth: 800,
// maxHeight: 600,
positionFromTop: 50,
resizeDuration: 700,
showImageNumberLabel: true,
wrapAround: false

};
questo è invece l'html attraverso cui ho necessità di passare l'oggetto

------------------
<div id='flipset' data-settings="

albumLabel: 'Image %1 of %2',
alwaysShowNavOnTouchDevices: false,
fadeDuration: 500,
fitImagesInViewport: true,
positionFromTop: 50,
resizeDuration: 700,
showImageNumberLabel: true,
wrapAround: false">
</div>
------------------

come faccio a correggerlo in modo che
Lightbox.defaults = obj;
funzioni?? grazie dell'aiuto

Il giorno sabato 7 novembre 2015 07:36:52 UTC+1, Alessandro Pellizzari ha
scritto:
> Il Fri, 06 Nov 2015 13:04:57 -0800, roberta sander ha scritto:
>
>> ciao devo passare via jquery un'oggetto a javascript il codice è questo
>
> jQuery È javascript. Perché devi "passargli" qualcosa?
>
>> Lightbox.defaults =$('#flipset').attr('data-settings');
>> //Lightbox.defaults = eval ("{" +
>> $('#flipset').attr('data-settings') + "}"); //questa riga da errore
>> //con questa funziona ma dovrei passare l'oggetto tramite
>> $('#flipset').attr('data-settings')
>
> E cosa c'è che non va?
>
> Quando vedi un eval() nel tuo codice, sai che quel codice è sbagliato.
>
>> albumLabel: 'Image %1 of %2',
>> ...
>> come faccio a correggere questa riga, mi date un'aiuto?
>
> Quindi, se ho capito bene, hai una stringa e la vuoi trasformare in un
> oggetto.
>
> O fai il parsing a mano o costringi l'utente a inserire un JSON valido
> (che è la cosa più semplice), oppure cambi l'interfaccia ed eviti di
> fargli copia-incollare dei parametri, ma gli presenti un selettore per
> ogni valore.
>
> Bye.
Alessandro Pellizzari 7 Nov 2015 14:34
Il Sat, 07 Nov 2015 03:21:52 -0800, roberta sander ha scritto:

> Grazie della risposta ho provato a convertire la stringa in un oggetto
> json ma mi da errore
> ...
> albumLabel: 'Image %1 of %2', alwaysShowNavOnTouchDevices: false,
> fadeDuration: 500,

Perché questo non è JSON corretto. Per questo ti dicevo che dovevi
forzarlo.

> questo è invece l'html attraverso cui ho necessità di passare l'oggetto

Chi genera questo HTML? Probabilmente è più semplice far generare il
codice corretto all'origine che cercare di metterci una pezza dopo.

Bye.
roberta sander 7 Nov 2015 17:31
si grazie mille, con parse senza eval e correggendo gli apici nel json che non
era corretto ha funzionato finalmente ciao


Il giorno sabato 7 novembre 2015 14:34:16 UTC+1, Alessandro Pellizzari ha
scritto:
> Il Sat, 07 Nov 2015 03:21:52 -0800, roberta sander ha scritto:
>
>> Grazie della risposta ho provato a convertire la stringa in un oggetto
>> json ma mi da errore
>> ...
>> albumLabel: 'Image %1 of %2', alwaysShowNavOnTouchDevices: false,
>> fadeDuration: 500,
>
> Perché questo non è JSON corretto. Per questo ti dicevo che dovevi
> forzarlo.
>
>> questo è invece l'html attraverso cui ho necessità di passare l'oggetto
>
> Chi genera questo HTML? Probabilmente è più semplice far generare il
> codice corretto all'origine che cercare di metterci una pezza dopo.
>
> Bye.

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio JavaScript | Tutti i gruppi | it.comp.lang.javascript | Notizie e discussioni javascript | Javascript Mobile | Servizio di consultazione news.