2010-01-21 14 views
6

मान लें कि मेरे पास ब्राउज़र है <iframe src="test.html">आईफ़्रेम से div (AJAX) में HTML सामग्री कॉपी करें?

क्या मैं AJAX का उपयोग कर सकता हूं, मुख्य HTML पृष्ठ में test.html की सामग्री को div में लोड कर सकता हूं?

यह विचार मेरा तथ्य है कि मैं वास्तव में दूरस्थ मेजबानों को AJAX सबमिट करने के साथ सीमा को दूर करने की कोशिश कर रहा हूं। योजना 0 आकार के आईफ्रेम के साथ गतिशील पृष्ठ उत्पन्न करना है जो रिमोट होस्ट को रिपोर्ट अनुरोध करता है। फिर, पृष्ठ के बाद (& iframe सामग्री) लोड करता है मैं जेएस का उपयोग कर आईफ्रेम सामग्री को एक div में कॉपी करूंगा।

सुझाव की सराहना की कर रहे हैं,

धन्यवाद, मैक्सिम।

उत्तर

2

नहीं, आप नहीं कर सकते।

जब आप किसी भिन्न डोमेन से आईफ्रेम में कोई पृष्ठ लोड करते हैं, तो यह पहुंच योग्य नहीं होता है। अब आप आईफ्रेम की सामग्री तक नहीं पहुंच सकते हैं, क्योंकि यह एक अलग डोमेन से आता है।

एकमात्र चीज जो मुझे पता है कि आप विश्वसनीय डोमेन से विश्वसनीय रूप से लोड कर सकते हैं वह एक स्क्रिप्ट है, जो JSONP उपयोग करता है।

+0

बमर ... मुझे यकीन था कि क्योंकि मैं iframe को कुंग कर सकता हूं, मेरे सभी AJAX मुद्दों को हल किया जाता है। स्पष्टीकरण के लिए धन्यवाद। –

+0

@ मैक्सिम: मजेदार, मैंने वास्तव में पहले कुछ ही विचार किया था, कुछ सेकंड पहले यह महसूस करने से पहले कि मैं उस डेटा तक पहुंचने में सक्षम नहीं हूं जिसे मैंने लोड किया था ...:) – Guffa

1

क्या मैं AJAX का उपयोग कर, मुख्य HTML पृष्ठ में test.html की सामग्री को लोड कर सकता हूं?

हाँ

(के बाद से अपने उदाहरण एक रिश्तेदार यूआरआई है और एक ही मेजबान पर है) ... यह विचार है कि तथ्य यह है कि मैं वास्तव में ajax बनाने के साथ सीमा को पार करने के लिए कोशिश कर रहा हूँ के लिए मेरे समाधान है दूरस्थ मेजबान को प्रस्तुत करता है।

... और नहीं। आप अभी भी दूरस्थ होस्ट से डेटा नहीं पढ़ सकते हैं।

0

... हालांकि, आप स्थानीय होस्ट को AJAX अनुरोध डिज़ाइन कर सकते हैं और दूरस्थ सर्वर से जानकारी पुनर्प्राप्त कर सकते हैं (जैसा कि here वर्णित है)।

1

मुझे यकीन है कि अगर मैं गलत हूं तो कोई मुझे सही करेगा, लेकिन मेरा मानना ​​है कि डोमेन सीमाओं में स्क्रिप्टिंग प्रतिबंधित है। या तुमने कोशिश की? यहां एक ऐसा फ़ंक्शन है जो मदद कर सकता है।

function insertDivFromFrame(divname, framename) { 
    var frame = document.getElementById(framename); 
    var d = frame.contentWindow || frame.contentDocument; 
    if (oDoc.document) {d = d.document;} 
    document.getElementById('yourdiv').innerHTML = d.body.innerHTML; 
} 

मुझे यकीन है कि इस कोड काम करता है ... इस बारे में अधिक मदद के लिए http://xkr.us/articles/dom/iframe-document/ दिखाई नहीं दे रहा हूँ।

0

यदि आप एक php/perl/etc लिखते हैं। किसी अन्य डोमेन से किसी दस्तावेज़ की सामग्री को आउटपुट करने के लिए स्क्रिप्ट, यह आपको सामग्री तक पहुंच प्रदान करेगी क्योंकि परिणामी पृष्ठ को जावास्क्रिप्ट द्वारा आपके डोमेन से संबंधित माना जाएगा। यदि आप किसी भी सर्वर-साइड स्क्रिप्टिंग भाषाओं से परिचित नहीं हैं, तो मुझे यकीन है कि आप एक स्क्रिप्ट ढूंढ पाएंगे जो एक साधारण Google खोज करके आपके लिए यह करेगा।

शुभकामनाएं।

+0

यही वह है जिसे हम संभवतः अपाचे एचटीपी क्लाइंट का उपयोग सरल आगे प्रॉक्सी के रूप में कर सकते हैं। मुझे अभी भी एक बेहतर/सर्वोत्तम प्रॉक्सी समाधान के बारे में संदेह है: वेबएप सॉफ्टवेयर प्रॉक्सी बनाम सर्वलेट कंटेनर प्रॉक्सी बनाम mod_proxy? –

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