रीलोडिंग के बिना विंडो को iframe में ले जाएं

मैं एक उपयोगकर्तास्क्रिप्ट नहीं बनाना चाहता हूं जो कि अगर मैं किसी लिंक पर क्लिक करता हूं तो भी इसके उदाहरण के साथ जारी रहेगा।

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

उस ने कहा, मैं इसे चालू नहीं करना चाहता:

<html>
  <head>
    ...
  </head>
  <body>
     ...page contents...
  </body>
</html>

इस मामले में:

<html>
  <head>
    ...here is my userscript running...

  </head>
  <body>
     <iframe style="width: 100%; height: 100%">
        ...move the whole original window here...

     </iframe>
  </body>
</html>

एक लिंक को अनल करता है target = "_ blank/_parent/_top" सभी ब्राउज़िंग गतिविधि आंतरिक आईफ़्रेम में होनी चाहिए, जबकि मूल विंडो को रीफ्रेश नहीं किया जाएगा (जिससे स्क्रिप्ट सभी चर खो देता है)।

ऐसा करने का एक तरीका बस मेरी साइट के यूआरएल की तरह एक यूआरएल के साथ एक आईफ्रेम बनाना होगा:

var container = document.createElement("iframe");
container.src = window.location;

हालांकि, इस तरह के दृष्टिकोण पृष्ठ रीलोड के साथ-साथ सभी डेटा (भरे हुए फॉर्म, स्क्रॉलिंग) को खो देंगे।

तो विंडो को अपनी सभी सामग्री के साथ आईफ्रेम पर ले जाने के लिए। क्या यह संभव है?

0
जोड़ा
विचारों: 1
नहीं, अभी भी एक जवाब का इंतजार है।
जोड़ा लेखक Tomáš Zato, स्रोत
टॉमस, यह वास्तव में एक दिलचस्प सवाल है कि मैं वर्तमान में अपने साथ संघर्ष कर रहा हूं। क्या आपको कोई जवाब मिला है? अब तक, जैसा कि मैंने इसे देखा है, iframe की विंडो और दस्तावेज़ संदर्भों को बदलने की जरूरत है, साथ ही जो भी संदर्भ एचटीएमएल, बॉडी और हेड टैग के लिए है। अफसोस की बात है, अगर इन संदर्भों को विंडो ऑब्जेक्ट पर किसी फ़ंक्शन में संलग्न किया गया है, तो उन्हें बदलने का कोई तरीका नहीं है। क्या आपके पास कोई भाग्य है?
जोड़ा लेखक AlexZ, स्रोत
हाँ, अब तक मेरे सभी शोधों ने संकेत दिया है कि यह संभव नहीं है, जो एक बड़ी शर्म की बात है।
जोड़ा लेखक AlexZ, स्रोत

1 उत्तर

शायद आप document.head.outerHTML और document.body.outerHTML की सामग्री प्राप्त कर सकते हैं, उन्हें एक स्ट्रिंग में गठबंधन करें, बेस 64 इसे एन्कोड करें, फिर डेटाURL बनाने के लिए परिणाम का उपयोग करें, जिसे आपने iframe के src के रूप में सेट किया है।

हालांकि मैं इस विचार को एक प्रभाव में बदलने के लिए एक स्क्रीन पर एक वीडियो कैमरे को इंगित करने के समान प्रभाव को बदल सकता हूं, यह दिखा रहा है कि यह आउटपुट है।

दिलचस्प सवाल बुकमार्क।

0
जोड़ा
मैं यह सुनिश्चित कर दूंगा कि आईफ्रेम में आंतरिक पृष्ठ इस तथ्य से अवगत होगा, कि यह पहले ही उपयोगकर्तास्क्रिप्ट द्वारा बनाए रखा गया है। हालांकि अच्छा बिंदु।
जोड़ा लेखक Tomáš Zato, स्रोत