दस्तावेज़ तैयार फॉर्म सबमिशन और ब्राउज़र इतिहास - जावास्क्रिप्ट, jquery, एचटीएमएल, रूप, ब्राउज़र इतिहास

जब मेरे पास डोम तैयार होता है तो मेरे पास पृष्ठ पर स्वचालित रूप से फ़ॉर्म सबमिट करने के लिए मेरे पृष्ठ में निम्न कोड है:

$(function () {
$("form").submit();
});

हालांकि, अगले पृष्ठ पर यदि उपयोगकर्ता क्लिक करता है वापस अपने ब्राउज़र पर यह इस कोड के साथ पृष्ठ के बजाए इस पृष्ठ से पहले पृष्ठ पर वापस जाता है (वैसे भी क्रोम / आईई के साथ)। यानी ब्राउज़र के इतिहास में फॉर्म के साथ वाला पृष्ठ गुम है।

यह भी खूब रही।, हालांकि मुझे आश्चर्य हुआ कि यह सब कुछ आधुनिक ब्राउज़र अब क्या कर रहा है? मैं ऐसे उत्तर की तलाश में हूं जो आधिकारिक स्रोतों को इंटरनेट मानकों के दस्तावेजों या ब्राउज़र विक्रेताओं से उद्धृत करता है जो उन्होंने लागू किए गए तंत्र को बताते हैं।

ऐसा लगता है कि अगर मैं कॉल करता हूं तो ऐसा होता है submit() डीओएम तैयार या विंडो लोड घटनाओं में कार्य करें।

जैसे पेज क्लिक होने के बाद यह कोड ब्राउजर इतिहास में फॉर्म पेज दिखाएगा (पीछे / आगे): -

document.addEventListener("click", function () { document.forms[0].submit(); }, false);

निम्नलिखित स्निपेट जीते "टी: -

document.addEventListener("DOMContentLoaded", function () { document.forms[0].submit(); }, false);
window.addEventListener("load", function() { document.forms[0].submit(); }, false);
window.onload = function () { document.forms[0].submit(); };

उत्तर:

उत्तर № 1 के लिए 7

मैंने पहले इस से निपटाया है। मैं नहीं चाहता था back button लेना उपयोगकर्ता पिछले पृष्ठ पर वापस। का उपयोग करते हुए onbeforeunload हल किया मेरे लिए मुद्दा ...

लेकिन आपकी समस्या निम्नलिखित अवधारणाओं से संबंधित है

  • ब्राउज़िंग संदर्भ
  • सत्र इतिहास
  • प्रतिस्थापन सक्षम (ध्वज)

  1. एक "ब्राउज़िंग संदर्भ" एक ऐसा वातावरण है जिसमें "दस्तावेज़" ऑब्जेक्ट्स होते हैं उपयोगकर्ता को प्रस्तुत किया जाता है।

  2. "ब्राउजिंग कॉन्टेक्स्ट" में "दस्तावेज़" का अनुक्रम इसका "सत्र इतिहास" है। "सत्र इतिहास" इन "दस्तावेज़" को फ्लैट प्रविष्टियों के रूप में सूचीबद्ध करता है।

  3. जब हम "प्रतिस्थापन सक्षम" प्रभाव में आते हैं"सत्र इतिहास" में एक "दस्तावेज़" से दूसरे में प्रचार करें। यदि ट्रैवर्सल को "प्रतिस्थापन सक्षम" के साथ शुरू किया गया था, निर्दिष्ट प्रविष्टि से पहले प्रविष्टि ("सत्र इतिहास" में) हटा दी गई है।

ध्यान दें किसी वेब ब्राउज़र में एक टैब या विंडो में आमतौर पर एक ब्राउज़िंग संदर्भ होता है, जैसा फ़्रेमसेट में आईफ्रेम या फ्रेम करता है।


इन में से किसी एक को बुलाकर, तर्कसंगत सोच

document.addEventListener( "DOMContentLoaded", function() {document.forms[0].submit();}, false );
window.addEventListener( "load", function() {document.forms[0].submit();}, false );
window.onload = function() {document.forms[0].submit();};

तुम हो सुझाव प्रदर्शन करने के लिए ब्राउज़र #3, क्योंकि उन कॉल का मतलब क्या है क्या यह पृष्ठ से जितनी जल्दी लोड हो जाता है उतना ही प्रचारित होता है। मेरे पास भी कोड है जाहिर है :) "सत्र इतिहास" से साफ़ होने के लिए कहा।

आगे की पढाई...


उत्तर № 2 के लिए 1

चूंकि इस कोड का जवाब देते समय इतिहास में पृष्ठ छोड़ देता है click घटना: -

document.addEventListener("click", function () { document.forms[0].submit(); }, false);

और कोड के निम्नलिखित टुकड़े इतिहास में पृष्ठ को नहीं छोड़ते हैं (DOMContentLoaded, तथा window onload आयोजन):-

document.addEventListener("DOMContentLoaded", function () { document.forms[0].submit(); }, false);
window.addEventListener("load", function() { document.forms[0].submit(); }, false);
window.onload = function () { document.forms[0].submit(); };

यह माना जा सकता है कि आधुनिक ब्राउज़र पृष्ठ नेविगेशन के लिए नेविगेशन इतिहास रिकॉर्ड नहीं करते हैं जो विंडो लोड या दस्तावेज़ तैयार हैंडलर के भीतर होता है।


जवाब के लिए 0 № 3

जब उपयोगकर्ता बैक बटन हिट करता है, तो ब्राउज़र पृष्ठ की कैश की गई प्रति दिखाता है। फॉर्म सबमिट पृष्ठ को कैश नहीं करता है इसलिए यह आपके इतिहास में दिखाई नहीं देता है।


उत्तर के लिए -1 № 4

हां, एक से रीडायरेक्टिंग onload इवेंट हैंडलर नए यूआरएल को प्रतिस्थापित करने का कारण बनता हैजिसे आप इतिहास में छोड़ते हैं (और इस प्रकार यह एक बेकार प्रविष्टि नहीं जोड़ता है)। लेकिन यह उस प्रतिस्थापन के लिए एकमात्र ट्रिगर नहीं है, यह किसी भी स्थान परिवर्तन के कारण भी तेजी से हो सकता है, यह विलंब प्रदूषण से बचने के लिए डिज़ाइन किया गया है जावास्क्रिप्ट आधारित पुनः निर्देशों के मामले में इतिहास।

उस विषय पर कोई विनिर्देश ढूंढना बहुत मुश्किल है लेकिन फ़ायरफ़ॉक्स पर यह देरी 15 सेकंड लगती है। यहां इस देरी का उल्लेख है बगजिला मोज़े डेवलपर्स में से एक से:

मोज़िला निर्णय लेने के लिए 15 सेकंड की दहलीज का उपयोग करता हैअगर एक पेज चाहिए इतिहास में रहें या नहीं। यदि कोई साइट उपयोग करती है और 15 सेकंड में किसी अन्य साइट पर रीडायरेक्ट करता है या दूसरे पर रीडायरेक्ट करता है ऑनलोडलोड () आदि में पृष्ठ ..., पुनर्निर्देशित पृष्ठ बदल जाएगा (और इस प्रकार उन्मूलन) इतिहास से पुनर्निर्देशित पृष्ठ। अगर 15 सेकंड के बाद पुनर्निर्देशन होता है, रीडायरेक्टिंग पेज रहता है इतिहास।

एक के बारे में बहस कर सकते हैं समय सीमा। लेकिन यह ऐसा कुछ है जिसे हमने सोचा था कि एक उचित संख्या थी


संबंधित सवाल
सबसे लोकप्रिय