2012-02-01 24 views
7

में बैक बटन दबाए जाने के बाद जावास्क्रिप्ट आईफ्रेम में निष्पादित करना बंद कर देता है मेरे पास एक मोबाइल पेज है जिसका उद्देश्य मोबाइल फोन के लिए है जिसमें मूल लक्ष्य में खुलने वाले लिंक के साथ आईफ्रेम शामिल है।मोबाइल सफारी

आईओएस 5.0.1 पर सफारी में, जब कोई उपयोगकर्ता किसी लिंक पर क्लिक करता है, तो पृष्ठ पर वापस जाने के लिए बैक बटन का उपयोग करता है, जावास्क्रिप्ट आईफ्रेम के भीतर निष्पादित करना बंद कर देता है।

, लिंक पर क्लिक करें चेतावनी की पुष्टि करें और वापस बटन का उपयोग करें:

एक साधारण डेमो समस्या को वर्णन करने। दूसरी बार जब आप लिंक पर क्लिक करेंगे तो अलर्ट नहीं दिखाएगा।

index.html:

<html> 
    <body> 
    <iframe src="iframe.html"></iframe> 
    </body> 
</html> 

iframe.html:

<html> 
    <body> 
    <a target="_parent" onclick="alert('Click')" href="http://www.google.com"> 
     Link 
    </a> 
    </body> 
</html> 

मैं यह क्या कारण हो सकता है के विचारों से बाहर चल रहा हूँ। क्या कोई इस में भाग गया है?

उत्तर

2

मैं एक ही मुद्दे में भाग गया है। ऐसा लगता है कि आईपैड की सफारी पृष्ठ को स्नैपशॉट करती है और जब आप बैक बटन का उपयोग करके उस पर वापस जाते हैं, तो यह लोड होता है कि स्नैपशॉट और जावास्क्रिप्ट कोड निष्पादित नहीं किया जा रहा है।

यह इस मुद्दे से संबंधित प्रतीत हो रहा है: http://www.mac-forums.com/forums/internet-networking-wireless/257631-safari-ipad-back-button-generates-old-info.html

बहुत कष्टप्रद। मुझे अभी तक कोई समाधान नहीं मिला है।

2

जांच Problems with Page Cache in iOS 5 Safari when navigating back/unload event not fired का जवाब। इस अगर आप iframe के भीतर पेज को यह लागू काम नहीं करता है, यह समग्र पेज iframe होस्टिंग पर होना चाहिए -

<body onunload=""> 
... 
<script type="text/javascript"> 
if ((/iphone|ipod|ipad.*os 5/gi).test(navigator.appVersion)) { 
    window.onpageshow = function(evt) { 
    // If persisted then it is in the page cache, force a reload of the page. 
    if (evt.persisted) { 
     document.body.style.display = "none"; 
     location.reload(); 
    } 
    }; 
} 
</script> 
+0

FYI करें:

जवाब यह है कि मेरे लिए काम किया निम्न करने के लिए था । या, ऐसा इसलिए हो सकता है क्योंकि मेरा आईफ्रेम वास्तव में किसी अन्य आईफ़्रेम के भीतर एम्बेड किया गया है। हां, मैं एक तीसरे पक्ष के घटक का उपयोग कर रहा हूँ। – kamranicus

+1

हां, यह निश्चित रूप से उस पृष्ठ पर होना चाहिए जिसमें आईफ्रेम शामिल है। – DrewB

संबंधित मुद्दे