2014-10-06 27 views
5

robie jedno wywołanie ajax i success funkcji Używam JSON.Parse function.But problemem jest to, że JSON.parse funkcja działa wszędzie poza iPad-Safari Browser ( wersji iPada ~ 7.0.6). W iPadzie Safari mój kod po linii, w której użyłem JSON.Parse, nie wydaje się być wykonany. Próbowałem alert z pewną wiadomością pod linkiem JSON.Parse, ale nie miałem szczęścia. Możemy znaleźć obejście tego problem?JSON.parse nie działa na iPad safari

Z góry dziękuję.

Oto SCRIPT Używam:

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

wartość z $('#divWOListForFE').html() jest poniżej

"[{"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

Proszę napisać kod! – loveNoHate

+0

będzie mógł użyć twojego kodu tutaj .. –

+0

Lub spróbuj za pomocą jquery.ParseJSON() –

Odpowiedz

6

dane JSON jest ważna, ale gdy struny, które wyglądają jak termin lub smyczki są obecne w węźle HTML, a iPad i iPhone automatycznie utworzą klikalne linki. Zasadniczo twój JSON ulega zniekształceniu po umieszczeniu go w standardowym węźle HTML DOM.

JS skrzypce, które pokazuje, że działa na pulpicie: http://jsfiddle.net/8wptohs0/1/

Ten sam JS skrzypce nie działa na iPhone symulatora (nie było wpisu): (Jeśli przyjrzeć się bliżej można zobaczyć symulator okazało się StartDate dane pole do niebieskich klikalne odnośniki) iPhone JSON parse error

Jeśli usunąć dane własności StartTime, to działa na pulpicie i iPhone http://jsfiddle.net/8wptohs0/2/

JSON.parse working on iPhone

Aby to naprawić, istnieje kilka metatagów, które powinny wystarczyć - być może trzeba będzie poeksperymentować, które z nich działają.

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

Warto jednak powiedzieć, że podczas wkładania służyć dane uboczne w javascript atrybutem data- lub inline JS jest bardziej powszechnie stosowane metody - dokładnie tego rodzaju powodów.

+0

Thanku bardzo za to niesamowite wyjaśnienie :) ale metatag, który powiedziałeś powyżej, nie działał. W tym przypadku wypróbowałem ten metatag i to Prace. Czy możesz mi powiedzieć, dlaczego tak się stało? –

+0

Dodałem tam twoją odpowiedź - są różne rodzaje danych, które możesz przekazać jabłkom, aby nie tworzyły automatycznie linków. Wygląda na to, że 'telephone = no' jest to, co musisz zrobić, aby przerwać formatowanie linków, które wyglądają jak daty. Wydaje mi się to dziwne, ale potwierdziłem to tutaj: http://jsfiddle.net/8wptohs0/5/ (zobacz metatagi na panelu CSS) –

+0

Sprawdziłem twoje skrzypce na iPadzie po usunięciu treści z panelu css. Nie działało. chociaż zawiera tylko ten metatag telefoniczny, zaczęło działać. mimo wszystko Twoja odpowiedź była dla mnie bardzo pomocna. Dzięki za tonę! –

Powiązane problemy