2011-08-25 17 views
7

मेरी वेबसाइट http://visualise.ca/ पर उपलब्ध है और जब आप थंबनेल पर क्लिक करके कोई पोस्ट लोड करते हैं तो यह पृष्ठ को अजाक्स का उपयोग करके पृष्ठ में लोड करेगा। आप पोस्ट बंद करते हैं यह आदेश वापस http://visualise.ca/ लिए पृष्ठ पुनः लोड करने के बिना URL बदलने के लिए इस कोड का उपयोग करता है:Window.location.hash मदद वाक्यविन्यास

$("#close").live("click", function(event) { 
    $("#board").fadeOut("slow"); 
    $("#board-wrapper").slideUp("slow"); 
    $("html,body").delay(1000).animate({scrollTop: 0}, 300); 
    window.location.hash = ""; 
    window.history.pushState(null,null,site_url+"/"); 
    return false; 
}); 

लेकिन IE8 में यह इसे वापस http://visualise.ca/# बजाय http://visualise.ca/ में बदल जाएं। क्या इसे सही करने का कोई तरीका है और सुनिश्चित करें कि यह http://visualise.ca/ में बदला गया है?

+2

आईई 8 एचटीएमएल 5 इतिहास एपीआई का समर्थन नहीं करता है, तो https://github.com/balupton/history.js – anderssonola

उत्तर

1

मैं हाल ही में बहुत सारे अजाक्स इतिहास कर रहा हूं। मैं अपने स्वयं के कार्यान्वयन की कोशिश कर रहा हूं जहां मैं पृष्ठों और मॉडलों और पीछे और चौथे स्थान पर नेविगेट करता हूं। बहुत अच्छी प्रगति करना

परीक्षणों की शुरुआत के बाद से मैंने देखा है कि रूट हैश; प्रारंभिक पृष्ठ पर वापस बदल दिया गया (जहां यह सब शुरू हुआ), केवल हैश (#) को खो देता है अगर यह ब्राउजर बैक बटन क्लिक करता है। अगर मैं हैश को वापस '' में बदलता हूं, तो यह हमेशा अंत में/# दिखाएगा।

जहां तक ​​आईई 8 का संबंध है, मुझे विश्वास नहीं है कि कोई समाधान है लेकिन iFrame हैक का उपयोग करके और, क्योंकि मैं अभी तक IE8/iframe हैक का परीक्षण करने के लिए नहीं मिला है, मैं इस पर टिप्पणी नहीं कर सकता।

मेरे समाधान के लिए मैं हैश और शुद्ध कमांड नियंत्रण का मिश्रण उपयोग कर रहा हूं। मेरे पास अंतिम संस्करण पूरी तरह से कुछ हफ्तों (इच्छापूर्ण सोच) के भीतर परीक्षण किया जाना चाहिए।

इसके अलावा, अगर यूआरएल के अंत में हैश/तेज छोड़ा गया है तो कौन परवाह करता है। एक बार जब मैं एक वेबसाइट पर क्लिक करता हूं तो मैं कभी भी यूआरएल पर नहीं देखता; मैं बस पेज की सामग्री को देखता हूं। वास्तव में: यह सिर्फ मुझे मारा कि यूआरएल केवल तभी महत्वपूर्ण है जब मैं इसे कॉपी और पेस्ट करना चाहता हूं। इसके अलावा, मैं इसे कभी नहीं देखता हूं।

0
window.location = window.location.href.replace(/#.*/, ""); 

यह आईई के लिए काम करेगा।

+1

जैसे फ़ॉलबैक का उपयोग करने पर विचार करें, यह पृष्ठ को पुनः लोड करता है। यह नहीं होना चाहिए। ;-) – Gab

0
$('#close').click(function(){ 

window.location = "http://visualise.ca/"; 

}); 
+1

यह पृष्ठ को पुनः लोड करता है। अच्छा नहीं ;-) – Gab

3

क्या यह इसे रोक नहीं पाएगा?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script> 
    $(document).ready(function() {  
    $(".testPhoto").click(function(event){ 
     event.stopPropagation(); 
     alert("do something"); 
     return false; 
    }); 
}); 
</script> 
<a class="testPhoto" href="#testPhoto" onclick="testPhoto">Test Photo</a> 
1

कम है कि IE9 न खत्म होने वाली हैश # बिना पृष्ठ पुनः लोड होता कुछ भी। मेरा सुझाव है कि आईई की जांच करें और सामग्री को हटा दें या खाली करें। यदि आप सही तरीके से चाहते हैं, तो आपको कुछ आईई क्विर्क को चकमा देना होगा।

if (jQuery.browser.msie && (parseInt(jQuery.browser.version) < 9)) { 
    window.location = 'http://visualise.ca"; 
    document.execCommand('stop'); 
}