मैं एक छोटे से परियोजना जिसमें मैं एक अजाक्स शैली वेबसाइट बनाने के लिए चाहते हैं पर काम कर रहा हूँ से छेड़छाड़। सामग्री jQuery के load()
के साथ लोड की गई है। जैसा कि आप में से कुछ जानते हैं, इसका निचला पक्ष यह है कि यूआरएल प्रदर्शित सामग्री के अनुसार बदलता नहीं है। इस काम को करने के लिए आप pushState()
का उपयोग कर सकते हैं। क्योंकि इस पार ब्राउज़र समर्थित नहीं है, मैं history.js
में प्लग का इस्तेमाल किया।pushState() और popstate(): 'ब्राउज़रों इतिहास
यह काफी अच्छी तरह से काम कर रहा है, लेकिन समस्या यह है कि मेरी पीठ और आगे के बटन काम नहीं कर रहे हैं जैसा कि उन्हें करना चाहिए और मुझे नहीं पता कि मैं क्या गलत कर रहा हूं। यूआरएल सही ढंग से बदल रहा है और सामग्री भी अच्छी है, लेकिन शीर्षक बिल्कुल बदल नहीं रहा है। शीर्षक के साथ मेरा मतलब ब्राउज़र विंडो के विंडो (या टैब) के शीर्षक के रूप में दिखाया गया है। अर्थात। पेज कि भरी हुई है या लिंक है कि उस पेज को संदर्भित करता है के शीर्षक विशेषता का <title>
(वे एक ही हैं)। मुझे लगता है कि यह सच है कि मैं पेज जिसका शीर्षक मैं जरूरत का केवल एक अनुभाग फोन से कोई लेना देना नहीं है (अर्थात load()
को #content
जोड़कर)। मैं अभी भी उस पृष्ठ का शीर्षक चाहता हूं। मेरे पास अब तक का एक परीक्षण केस है। (उपलब्ध नहीं है किसी भी अधिक के बाद से 28 दिसम्बर 2013) jQuery फ़ाइल:
$(document).ready(function() {
var firstLink = $("ul > li:first-child > a");
var menuLink = $("ul > li > a");
var firstLoadedHtml = firstLink.attr("href") + " #content";
$("#sectionContainer").hide().load(firstLoadedHtml).fadeIn("fast");
firstLink.addClass("active");
menuLink.click(function(e) {
history.pushState(null, null, this.href);
e.preventDefault();
e.stopImmediatePropagation();
var CurLink = $(this);
var newLoadedHtml = CurLink.attr("href") + " #content";
var oldSection = $(".contentPage");
$("#sectionContainer").hide().load(newLoadedHtml).fadeIn("fast");
menuLink.removeClass("active");
CurLink.addClass("active");
});
$(window).bind('popstate', function() {
var returnLocation = history.location || document.location;
$('#sectionContainer').load(returnLocation + "#content");
});
});
मैं यह भी कहा कि जब बुनियादी पृष्ठ (यानी/sectionLoaderTest /) के लिए वापस जा यह थोड़ी देर के लिए और केवल कुछ समय के बाद खाली हो जाता है पहले पृष्ठ की सामग्री लोड हो गई है। क्या इसे अनुकूलित करने का कोई तरीका है?
साथ ही, मैं jQuery का उपयोग कर रहा है कि लिंक क्लिक किया गया है करने के लिए एक सक्रिय श्रेणी जोड़ने के लिए। मैं कैसे सुनिश्चित कर सकता हूं कि यह इतिहास के अनुसार बदलता है? ताकि जब उपयोगकर्ता वापस नेविगेट करता है तो सही लिंक हाइलाइट किया जाता है?
तो तीन प्रश्न हैं:
- जब आगे बढ़ते हुए और पिछड़े
- mainpage का लोड समय
- सक्रिय स्तरीय फिक्स का अनुकूलन जब आगे बढ़ते हुए और पिछड़े कार्य शीर्षक प्राप्त करें
सभी सहायता आपका स्वागत है!
नोट 1: मैं history.js और अपनी खुद की स्क्रिप्ट पर निर्माण करना चाहता हूं और इस तरह < HTML5
ब्राउज़र के लिए समर्थन रखना चाहता हूं। मैं इसे पसंद करूंगा क्योंकि 1. मुझे पता है कि इसे काम करना है, कुछ ऐसा गलत है जो गलत हो रहा है। 2. यह समय बचाएगा अगर मैं किसी के समाधान को देख सकूं और इसे एक नई स्क्रिप्ट को समझने के बजाय पहले से लिखी गई स्क्रिप्ट में लागू कर सकूं।
नोट 2: बक्षीस केवल उन सभी को दिया जाएगा जो मेरे सभी सवालों का जवाब दे सकते हैं (3)!
आप अभी भी ठीक नहीं करते हैं, इस तरह के का एक उदाहरण यहां http://stackoverflow.com/questions/6622449/why-is-history-pushstate-not-supported-in-ie-are-there-some देखना -other-ways-to-ach/9470183 # 9470183 – devote
आपकी टिप्पणी वास्तव में सहायक नहीं है। मुझे history.js को लागू करने की आवश्यकता नहीं है (अभी तक), मैं बस यह समझने की कोशिश कर रहा हूं कि पुशस्टेट अब क्या कर रहा है। मैं इस समस्या को ठीक करना चाहता हूं। –
मेरी टिप्पणी आपकी गलती को इंगित करती है, घटना को संसाधित करने के तरीकों को कैसे बैठना है।इवेंट पॉपस्टेट को अवरुद्ध करने की विधि, आपने पोस्ट किया है सही नहीं है, इसे क्लिक करते समय विधि के काम से हटा दें। – devote