2014-10-06 23 views
5

sto facendo una chiamata AJAX ed in funzione success Sto usando JSON.Parse function.But il problema è che la funzione JSON.parse sta lavorando in tutto il mondo tranne che in iPad-Safari Browser ( iPad Version ~ 7.0.6). In iPad Safari, il mio codice dopo la riga dove ho usato JSON.Parse non sembra essere eseguito. Ho provato alert con qualche messaggio sotto la linea JSON.Parse ma non ho avuto fortuna. Possiamo trovare un lavoro intorno a questo problema?JSON.parse non funziona su iPad safari

Grazie in anticipo.

Ecco la SCRIPT Sono in esecuzione:

var obj = JSON.parse($('#divWOListForFE').html()); 
alert('hello'); //this alert doesnt execute on iPadSafari 
$('#divWOListForFE').html(''); 
BindWorkOrderGrid(obj, 1, 10); 

Il valore di $('#divWOListForFE').html() è al di sotto

"[{"Pk_WorkOrderId":6806,"Fk_CompanyId":null,"Fk_CreatedByUserId":null,"Fk_ProposalId":null,"Fk_InvoiceId":null,"OrderNo":242,"Fk_SiteAddressId":null,"Fk_CustomerId":null,"Fk_GanttItemId":null,"AppointmentDateTime":null,"TimestampCreated":null,"CreationDate":null,"TimestampModified":null,"Description":"","EquipmentNeeded":null,"SpecialInstructions":null,"WorkOrderType":"Contract","JobType":null,"HourlyRate":null,"CompletionStatus":null,"TotalEstHrs":null,"TotalActualHrs":null,"WorkToBePerformed":null,"BIllingStatus":null,"OkToBill":null,"WorkOrderStatus":"Scheduled","IsDeleted":false,"IsProposalSort":null,"TotalRecords":6,"IsUserCreator":1,"CreatedBy":"Mndi,Murali","CustomerName":"Mfsi - Mindi M1","StartTime":"10/1/2014 8:00:00 AM"},{"Pk_WorkOrderId":6807,"Fk_CompanyId":null,"Fk_CreatedByUserId":null,"Fk_ProposalId":null,"Fk_InvoiceId":null,"OrderNo":243,"Fk_SiteAddressId":null,"Fk_CustomerId":null,"Fk_GanttItemId":null,"AppointmentDateTime":null,"TimestampCreated":null,"CreationDate":null,"TimestampModified":null,"Description":"","EquipmentNeeded":null,"SpecialInstructions":null,"WorkOrderType":"Contract","JobType":null,"HourlyRate":null,"CompletionStatus":null,"TotalEstHrs":null,"TotalActualHrs":null,"WorkToBePerformed":null,"BIllingStatus":null,"OkToBill":null,"WorkOrderStatus":"Scheduled","IsDeleted":false,"IsProposalSort":null,"TotalRecords":6,"IsUserCreator":1,"CreatedBy":"Mndi,Murali","CustomerName":"Mfsi - Murli Mindi","StartTime":"8/1/2014 8:00:00 AM"},{"Pk_WorkOrderId":6808,"Fk_CompanyId":null,"Fk_CreatedByUserId":null,"Fk_ProposalId":null,"Fk_InvoiceId":null,"OrderNo":244,"Fk_SiteAddressId":null,"Fk_CustomerId":null,"Fk_GanttItemId":null,"AppointmentDateTime":null,"TimestampCreated":null,"CreationDate":null,"TimestampModified":null,"Description":"adding a new description for this field user.","EquipmentNeeded":null,"SpecialInstructions":null,"WorkOrderType":"Contract","JobType":null,"HourlyRate":null,"CompletionStatus":null,"TotalEstHrs":null,"TotalActualHrs":null,"WorkToBePerformed":null,"BIllingStatus":null,"OkToBill":null,"WorkOrderStatus":"Scheduled","IsDeleted":false,"IsProposalSort":null,"TotalRecords":6,"IsUserCreator":1,"CreatedBy":"Mndi,Murali","CustomerName":"Mindi, Shiv","StartTime":"10/2/2014 8:00:00 AM"},{"Pk_WorkOrderId":6808,"Fk_CompanyId":null,"Fk_CreatedByUserId":null,"Fk_ProposalId":null,"Fk_InvoiceId":null,"OrderNo":244,"Fk_SiteAddressId":null,"Fk_CustomerId":null,"Fk_GanttItemId":null,"AppointmentDateTime":null,"TimestampCreated":null,"CreationDate":null,"TimestampModified":null,"Description":"adding a new description for this field user.","EquipmentNeeded":null,"SpecialInstructions":null,"WorkOrderType":"Contract","JobType":null,"HourlyRate":null,"CompletionStatus":null,"TotalEstHrs":null,"TotalActualHrs":null,"WorkToBePerformed":null,"BIllingStatus":null,"OkToBill":null,"WorkOrderStatus":"Scheduled","IsDeleted":false,"IsProposalSort":null,"TotalRecords":6,"IsUserCreator":1,"CreatedBy":"Mndi,Murali","CustomerName":"Mindi, Shiv","StartTime":"10/2/2014 8:00:00 AM"},{"Pk_WorkOrderId":6809,"Fk_CompanyId":null,"Fk_CreatedByUserId":null,"Fk_ProposalId":null,"Fk_InvoiceId":null,"OrderNo":245,"Fk_SiteAddressId":null,"Fk_CustomerId":null,"Fk_GanttItemId":null,"AppointmentDateTime":null,"TimestampCreated":null,"CreationDate":null,"TimestampModified":null,"Description":"","EquipmentNeeded":null,"SpecialInstructions":null,"WorkOrderType":"Contract","JobType":null,"HourlyRate":null,"CompletionStatus":null,"TotalEstHrs":null,"TotalActualHrs":null,"WorkToBePerformed":null,"BIllingStatus":null,"OkToBill":null,"WorkOrderStatus":"Scheduled","IsDeleted":false,"IsProposalSort":null,"TotalRecords":6,"IsUserCreator":1,"CreatedBy":"Mndi,Murali","CustomerName":"Sudhansu-Dummy test","StartTime":"10/5/2014 1:00:00 PM"},{"Pk_WorkOrderId":6809,"Fk_CompanyId":null,"Fk_CreatedByUserId":null,"Fk_ProposalId":null,"Fk_InvoiceId":null,"OrderNo":245,"Fk_SiteAddressId":null,"Fk_CustomerId":null,"Fk_GanttItemId":null,"AppointmentDateTime":null,"TimestampCreated":null,"CreationDate":null,"TimestampModified":null,"Description":"","EquipmentNeeded":null,"SpecialInstructions":null,"WorkOrderType":"Contract","JobType":null,"HourlyRate":null,"CompletionStatus":null,"TotalEstHrs":null,"TotalActualHrs":null,"WorkToBePerformed":null,"BIllingStatus":null,"OkToBill":null,"WorkOrderStatus":"Scheduled","IsDeleted":false,"IsProposalSort":null,"TotalRecords":6,"IsUserCreator":1,"CreatedBy":"Mndi,Murali","CustomerName":"Sudhansu-Dummy test","StartTime":"10/5/2014 1:00:00 PM"}]" 
+0

Si prega di inviare un po 'di codice! – loveNoHate

+0

sarà in grado di utilizzare il codice qui .. –

+0

Oppure provare con jquery.ParseJSON() –

risposta

6

I dati JSON è valida, ma quando le stringhe che assomigliano a date o stringhe sono presenti all'interno di un nodo HTML sia l'iPad che l'iPhone creano automaticamente collegamenti cliccabili. Quindi in pratica il tuo JSON si sta contraendo quando lo inserisci in un nodo DOM HTML standard.

JS violino che mostra lavorando sul desktop: http://jsfiddle.net/8wptohs0/1/

Questo stesso violino JS non funziona su iPhone simulatore (non c'era avviso): (Se si guarda attentamente si può vedere il simulatore ha trasformato il StartDate i dati del campo in blu link cliccabili) iPhone JSON parse error

se rimuovere i dati di proprietà StartTime, funziona sul desktop e l'iPhone http://jsfiddle.net/8wptohs0/2/

JSON.parse working on iPhone

Per risolvere questo problema, ci sono alcuni meta tag che dovrebbero fare il trucco - potrebbe essere necessario sperimentare su quali funzionano per voi.

<meta name="format-detection" content="telephone=no"> <meta name="format-detection" content="date=no"> <meta name="format-detection" content="address=no">

Tuttavia vale la pena dire che durante l'inserimento dei dati servono laterali in JavaScript un attributo data- o in linea JS è un metodo più comunemente utilizzato - esattamente per questo tipo di ragioni.

+0

Grazie mille per questa meravigliosa spiegazione :) ma il meta tag che hai detto sopra non funzionava. Invece di questo ho provato questo meta tag e lavori. Puoi dirmi perché è successo? –

+0

Ho aggiunto la tua risposta lì - ci sono diversi tipi di dati che puoi dire a Apple di non creare automaticamente link. Sembra che 'telephone = no' è ciò che devi fare per fermare la formattazione di link che sembrano date. Questo sembra strano ma l'ho confermato qui: http://jsfiddle.net/8wptohs0/5/ (vedi meta tag sul pannello CSS) –

+0

Ho controllato il tuo violino in iPad dopo aver rimosso il contenuto dal pannello css. Non ha funzionato. mentre includeva solo questo meta tag telefonico, ha iniziato a funzionare. comunque la tua risposta è stata molto utile per me. Grazie mille! –

Problemi correlati