Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> HTML

HTML Location assign() मेथड: नया दस्तावेज़ लोड करें (इतिहास संरक्षित)


HTML Location assign() मेथड एक नया दस्तावेज़ लोड करता है वर्तमान दस्तावेज़ के इतिहास को संरक्षित रखते हुए। उपयोगकर्ता "वापस" बटन का उपयोग करके पिछले पेज पर लौट सकता है। यह location.href = ... या location.replace() (जो इतिहास प्रविष्टि को बदल देता है) से अलग है।

सिंटैक्स (Syntax)

location.assign(URL)

पैरामीटर: लोड करने के लिए पूर्ण या सापेक्ष URL स्ट्रिंग।

उदाहरण (Example)

यह उदाहरण assign() का उपयोग करके ट्यूटोरियल्सपॉइंट लोड करता है, जिससे उपयोगकर्ता वापस जा सकता है।

<!DOCTYPE html>
<html>
<head>
  <style>
    body {
      color: #000;
      height: 100vh;
      background: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%) no-repeat;
      text-align: center;
      font-family: Arial, sans-serif;
    }
    .btn {
      background: #db133a;
      border: none;
      height: 2.5rem;
      border-radius: 20px;
      width: 330px;
      display: block;
      color: #fff;
      outline: none;
      cursor: pointer;
      margin: 1.5rem auto;
      font-size: 1rem;
      transition: background 0.3s;
    }
    .btn:hover { background: #b01030; }
    .btn.secondary { background: #2274A5; width: 45%; display: inline-block; margin: 0.5rem; }
    .btn.secondary:hover { background: #1a5d85; }
    .info-box {
      background: rgba(255,255,255,0.1);
      color: #fff;
      padding: 1.5rem;
      border-radius: 10px;
      margin: 1rem auto;
      max-width: 500px;
      text-align: left;
      line-height: 1.8;
    }
    code { background: rgba(0,0,0,0.3); padding: 0.2rem 0.5rem; border-radius: 4px; }
    .nav-buttons { margin: 2rem 0; }
  </style>
</head>
<body>
  <h1>HTML Location assign() मेथड डेमो</h1>
  
  <div class="info-box">
    <h3>📍 वर्तमान पेज:</h3>
    <p></p>
    <h3>📜 इतिहास लंबाई: <span id="historyLen"></span></h3>
    <p><small>assign() के बाद इतिहास लंबाई बढ़ेगी। "वापस" बटन काम करेगा।</small></p>
  </div>
  
  <button class="btn" onclick="loadTutorialspoint()">ट्यूटोरियल्सपॉइंट लोड करें (assign)</button>
  
  <div class="nav-buttons">
    <button class="btn secondary" onclick="goBack()" disabled id="backBtn">← वापस</button>
    <button class="btn secondary" onclick="goForward()" disabled id="forwardBtn">आगे →</button>
  </div>
  
  <button class="btn secondary" onclick="showLocationProps()">Location प्रॉपर्टीज दिखाएं</button>
  
  <div class="info-box" id="propsDisplay" style="display: none;"></div>

  <script>
    const currentUrlEl = document.getElementById('currentUrl');
    const historyLenEl = document.getElementById('historyLen');
    const backBtn = document.getElementById('backBtn');
    const forwardBtn = document.getElementById('forwardBtn');
    const propsDisplay = document.getElementById('propsDisplay');
    
    function updateInfo() {
      currentUrlEl.textContent = window.location.href;
      historyLenEl.textContent = history.length;
      backBtn.disabled = history.length <= 1;
      forwardBtn.disabled = true; // सरलीकरण
    }
    
    function loadTutorialspoint() {
      // assign() इतिहास में नई प्रविष्टि जोड़ता है
      location.assign('https://www.tutorialspoint.com/');
    }
    
    function goBack() {
      history.back();
      setTimeout(updateInfo, 100);
    }
    
    function goForward() {
      history.forward();
      setTimeout(updateInfo, 100);
    }
    
    function showLocationProps() {
      const props = [
        'href', 'protocol', 'host', 'hostname', 'port',
        'pathname', 'search', 'hash', 'origin'
      ];
      
      let html = '

Location ऑब्जेक्ट प्रॉपर्टीज:

    '; props.forEach(prop => { html += `
  • ${prop}: ${location[prop] || '(खाली)'}
  • `; }); html += '
'; html += '

मेथड्स:

    '; ['assign()', 'replace()', 'reload()', 'toString()'].forEach(m => { html += `
  • location.${m}
  • `; }); html += '
'; propsDisplay.innerHTML = html; propsDisplay.style.display = 'block'; } updateInfo(); </script> </body> </html>

आउटपुट (Output)

प्रारंभिक पेज:

HTML Location assign() मेथड: नया दस्तावेज़ लोड करें (इतिहास संरक्षित)

"ट्यूटोरियल्सपॉइंट लोड करें" पर क्लिक करने के बाद - नया पेज लोड होता है, वापस बटन सक्षम:

HTML Location assign() मेथड: नया दस्तावेज़ लोड करें (इतिहास संरक्षित)

ब्राउज़र में वापस बटन काम करता है।

Location नेविगेशन मेथड्स तुलना

मेथड/प्रॉपर्टी इतिहास प्रविष्टि वापस बटन उपयोग मामला
location.assign(url) नई प्रविष्टि जोड़ता है काम करता है सामान्य नेविगेशन, उपयोगकर्ता वापस जा सकता है
location.replace(url) वर्तमान प्रविष्टि बदलता है काम नहीं करता रीडायरेक्ट, लॉगिन के बाद, "वापस" रोकने के लिए
location.href = url नई प्रविष्टि जोड़ता है काम करता है सबसे आम, assign() के समान
history.pushState() कस्टम स्थिति के साथ प्रविष्टि काम करता है SPA रूटिंग, URL बिना रीलोड बदले
history.replaceState() वर्तमान प्रविष्टि संशोधित काम नहीं करता URL अपडेट बिना इतिहास प्रविष्टि जोड़े

व्यावहारिक उपयोग मामले

1. सामान्य नेविगेशन (assign/href)

// उपयोगकर्ता वापस जा सकता है
location.assign('/dashboard');
// या
location.href = '/dashboard';

2. लॉगिन के बाद रीडायरेक्ट (replace)

// लॉगिन पेज पर वापस जाने से रोकें
if (loginSuccess) {
  location.replace('/dashboard');
}

3. SPA रूटिंग (pushState)

// बिना रीलोड URL बदलें
history.pushState({page: 'profile'}, '', '/profile');

4. सशर्त नेविगेशन

function navigateSafely(url, replace = false) {
  if (replace) {
    location.replace(url);
  } else {
    location.assign(url);
  }
}

// उपयोग
navigateSafely('/settings');           // सामान्य
navigateSafely('/logout', true);       // लॉगआउट के बाद वापस न जाने दें

त्रुटि संचालन

  • अमान्य URL → ब्राउज़र त्रुटि पेज दिखाता है (कोई जावास्क्रिप्ट त्रुटि नहीं)।
  • क्रॉस-ओरिजिन प्रतिबंध: assign() क्रॉस-ओरिजिन काम करता है लेकिन नए पेज की स्क्रिप्ट्स ओरिजिन नीतियों द्वारा प्रतिबंधित होती हैं।
  • पॉपअप ब्लॉकर: यदि पॉपअप में उपयोग किया जाता है, तो ब्लॉक हो सकता है।

ब्राउज़र समर्थन

सभी ब्राउज़र (Chrome 1+, Firefox 1+, Safari 1+, Edge 12+, IE 4+, Opera 3+)।


  1. HTML Form method एट्रिब्यूट: GET vs POST HTML Form method एट्रिब्यूट: GET vs POST

    HTML Form method एट्रिब्यूट परिभाषित करता है कि फॉर्म डेटा सर्वर को कैसे भेजा जाए: GET (URL पैरामीटर्स के रूप में) या POST (HTTP रिक्वेस्ट बॉडी में)। यह सुरक्षा, डेटा लंबाई, कैशिंग, और बुकमार्केबिलिटी को प्रभावित करता है। सिंटैक्स (Syntax) <form method=get | post></form> get (डिफ़ॉल

  1. HTML Location assign() मेथड: नया दस्तावेज़ लोड करें (इतिहास संरक्षित) HTML Location assign() मेथड: नया दस्तावेज़ लोड करें (इतिहास संरक्षित)

    HTML Location assign() मेथड एक नया दस्तावेज़ लोड करता है वर्तमान दस्तावेज़ के इतिहास को संरक्षित रखते हुए। उपयोगकर्ता वापस बटन का उपयोग करके पिछले पेज पर लौट सकता है। यह location.href = ... या location.replace() (जो इतिहास प्रविष्टि को बदल देता है) से अलग है। सिंटैक्स (Syntax) location.assign(URL)

  1. HTML Window moveTo() मेथड HTML Window moveTo() मेथड

    HTML Window moveTo() मेथड किसी विंडो के बाएं और ऊपरी किनारों को निर्दिष्ट निर्देशांक (coordinates) पर ले जाता है।सिंटैक्सनिम्नलिखित सिंटैक्स है:window.moveTo(x, y)यहां, x और y क्रमशः विंडो को क्षैतिज और लंबवत रूप से पिक्सेल में ले जाने के मान को परिभाषित करते हैं।आइए HTML Window moveTo() मेथड का एक