2012-04-11 15 views
5

OS X 10.7.3 (Lion) dizüstü bilgisayarımda, Tarih yapıcıyı kullanarak Qt WebKit ile JavaScript tarih dizelerini ayrıştıramıyorum. yasemin-başsız-webkit veya phantomJS birini kullanarak, tüm çağrılar gibi: new Date ("YYYY-AA-DD"), MacPorts'u kaldırdıktan sonra Qt WebKit'te çalışmayı durdurdu

new Date("2012-04-10") 

yerine her zaman geçerli bir Date nesnesinin

"Invalid Date" 

dönün. Birkaç hafta önce her şey iyi çalışıyordu ve bunu benzer bir kurulumla yarım düzine bilgisayarda kontrol ettim ve sorunu başka bir yerde yeniden üretemedim.

Eski sözde kullanılmayan MacPorts kurulumumu temizlemeye karar verdiğimde başlayan sorunlardan oldukça eminim (Uzun zamandır Homebrew'a geçtim ve ev temizliği yapıyordum). Qt tarafından tarih ayrıştırması için kullanılan, sistemimden kaldırılan dinamik olarak bağlantılı bir kitaplık olduğundan şüpheleniyorum.

Bu tarihte ayrıştırma kütüphanesinin ne çağrılabileceği hakkında bir fikri olan var mı? Homebrew ile kurabilir miyim veya bir şekilde eksik bağımlılığı elle tamir edebilir miyim?

Qt ve diğer birçok kitaplığı yeniden yüklemeyi denedim, ancak hiçbir şey sorunu çözmedi.

+0

güncelleme: phantomJS'de hiç çalışmadı sanırım, sorun jasmine-headless-webkit için lokalize edilir. İş arkadaşım için yasemin QtWebkit'te çalışmıyor olabileceğinden şüphelenmeye başladım, belki de Node.js ya da başka bir şey kullanıyor. Araştırmaya devam edeceğim. Bu soru geçersiz olabilir, ancak daha fazla şey öğrenene kadar açık bırakacağım. –

cevap

2

Mac'im yok ama Windows için benzer bir durum verildiğinde, Dependency Walker gibi bir uygulamanın bağımlılıkları hakkındaki bilgileri raporlayabilen bir program kullanırdım. Mac dünyasında this program numaralı hızlı bir arama önerilebilir.

+0

Bunun için teşekkürler! /Library/Frameworks/QtWebKit.framework/Versions/Current/QtWebKit öğesini açarak birçok ilginç bilgi görebiliyorum. Ama bir sürü bağımlılık var ve hala kök neden sorununu çözemedim, bu yüzden kabul edilmiş bir cevabı işaretleyemem (size bir not verdim). –

1

Tamam, ben jasmine-headless-webkit ile tarih ayrıştırma ile sorunu çözdüm. Ne yazık ki, bu konuda yeterince bilimsel değildim, o yüzden ne düzelttiğine emin değilim. *

  1. /Library/Altyapıları/Qt * ve homebrew (/ usr/local/Qt * ve/usr/local/Mahzen/qt den Qt tüm izlerini çıkarma: Muhtemelen aşağıdaki işlem bir kısmını veya tamamını oldu)
  2. demlemek yükle "demlemek güncelleme" üzerinden http://qt.nokia.com/downloads/ den Qt kütüphaneleri (kütüphaneler, üstündeki değil SDK)
  3. Güncelleme homebrew yeniden Ayrıca

qt ben yüklü Qt SDK ve XCode 4.3, ama sanırım iş arkadaşlarımın bu şeylere sahip olmadığı ve benim gibi aynı sorunu yaşamadığı için düzeltildi.

Bunun MacPorts ile hiçbir ilgisi olmamasına karşın, eski Qt 4.7 kurulumumla ilgili bir sorun olabileceği ihtimali var. Şimdi Qt 4.8 çalıştırıyorum.

Tüm gürültü için özür dilerim! Belki bu bilgi başka birine yardımcı olacaktır.

0

Bu hatayı aldım, QtWebKit ile ilgili olduğunu varsayalım ancak wicked_pdf kullanırken.Wkhtmltopdf ve qtwebkit üzerindeki bağımlılıkları OS'ler üzerinde dağıtmak zordu (ben devdeki OSX'i çalıştırıyorum, bazen Ubuntu'yu çalıştırıyorum, biz Heroku'ya konuşluyoruz, ancak yakında diğer platformlara konuşabiliriz), bu yüzden de bir çözüm buldum ve bir çözüm kullandım. Bir Date nesnesini yeni oluşturmak için moment.js'yi kullandım ve her şey işe yaradı. Kaputun altına bakmak ve nasıl çalıştığını görmek için zamanım olmadı, ama benim tahminim, moment.js, tarayıcı desteğini test ederek bir tarih nesnesine "YYYY-AA-GG" yi çevirmek konusunda akıllıca.

Bu, kodunuzun hangi işletim sisteminde çalıştığını umursamadan ve moment.js lib'ini dahil etmeyi göze almanız gerektiğinde, bunun için oldukça iyi bir geçici çözümdür. Bu şekilde, hangi WebKit'in çalıştığıyla ilgilenmeniz gerekmez.