यह मेरा दूसरा प्रोजेक्ट है जो jQuery पता का उपयोग कर रहा है, और मुझे लगता है कि फ़ायरफ़ॉक्स के साथ कुछ अजीब है, या कम से कम मैं यह पता लगा सकता हूं कि इसका फ़ायरफ़ॉक्स और वेबकिट में एक अलग व्यवहार है।समान jQuery पता फ़ायरफ़ॉक्स में छोटी है?
जब गहरी लिंकिंग होती है, तो jQuery पते को एक परिवर्तन ईवेंट को आग लगाना चाहिए और इस स्थिति से संबंधित जावास्क्रिप्ट के टुकड़े को निष्पादित करना चाहिए।
/foo/बार डीप लिंक के लिए, यदि मैं कंसोल, गूगल क्रोम में करने के लिए घटना वस्तु लिख, मैं दो घटनाओं निकाल दिया है:
jQuery.Event # 1
path: "/"
pathNames: Array[0]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/"
jQuery.Event # 2
path: "/foo/bar"
pathNames: Array[2]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/foo/bar"
लेकिन फ़ायरफ़ॉक्स में, मैं केवल एक गतिविधि सक्रिय है, मैं नहीं ले करता है कि n खाता वर्तमान URI:
jQuery.Event # 1
path: "/"
pathNames: Array[0]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/"
तो फ़ायरफ़ॉक्स में लाइटबॉक्स कि मैं/foo/बार यूआरआई कभी नहीं :-(खोलने के लिए जा रहा है के लिए खोलना चाहते हैं स्पष्ट रूप से अब मैं एक सरल समाधान का उपयोग कर रहा हूँ यह फ़ायरफ़ॉक्स में काम करने के लिए, बस एक init फू जोड़ने के लिए
$.address.crawlable(1).state('/').change(function(event) {
var page = event.path;
if (page == '/foo/bar'){
openLightbox($('#create-popup-template').html());
create_main();
}
});
:
यहाँ jQuery पते के लिए मेरी कोड है nction फ़ायरफ़ॉक्स में एक दूसरे परिवर्तन घटना के लिए मजबूर करने:
$.address.init(function(){
if ($.browser.mozilla)
$.address.value(window.location.pathname);
});
लेकिन यह मैं यह करने के लिए है दूसरी बार किया गया है और यह सही नहीं लगता है .. मैं कुछ याद आ रही है?
मैं भी पहले से ही आंतरिक और बाह्य परिवर्तन कॉलबैक के साथ गंदगी करने की कोशिश की कोई संभावना नहीं के साथ ..
मदद के लिए धन्यवाद,
थॉमस।