/ / कुछ वेबसाइट iframe और .load () फ़ंक्शन के साथ प्रकट नहीं होंगी - जावास्क्रिप्ट, jquery, html, html5, iframe

कुछ वेबसाइट iframe और .load () फ़ंक्शन के साथ प्रकट नहीं होंगी

मैं वेबपृष्ठों को किसी अन्य वेबपृष्ठ पर लोड करने का प्रयास कर रहा हूं(मेरे सर्वर पर होस्ट नहीं किया गया), लेकिन क्रॉस-साइट / सिक्योरिटी स्क्रिप्टिंग के कारण मैं कुछ वेबपेजों को लोड करने में असमर्थ हूं। उदाहरण के लिए, google ने एक आइफ्रेम में या अगर मैं jquery का उपयोग करता हूं, तो नहीं दिखाया।

 <script>
$("#siteload").html("<object data="http://google.com">");
</script>

बस एक नोट: मैं "विशेष रूप से Google को लोड करने की कोशिश नहीं कर रहा हूं, बस कोई भी वेबपेज जिसने" t allow iframes .. जीता है।

किसी को एक समाधान का पता है? मेरे सर्वर पर .html फ़ाइल लोड करने के बारे में, क्या वह काम करेगा? & किस तरह?

आपके सहयोग के लिए धन्यवाद।

उत्तर:

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

कुछ वेबसाइटें iframes के उपयोग को रोकती हैं। Google उनमें से एक है।

संपादित करें: मुझे लगता है कि Google इसके साथ एक हीरोगिन सेटिंग भेज रहा है।


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

कुछ संभावित वर्कअराउंड:

  1. डॉन "टी एक iframe का उपयोग करें, एक div और $ .load () का उपयोग करें

  2. Google द्वारा उपयोग किए जाने पर, केस-बाय-केस आधार पर समाधान खोजें Google कस्टम खोज इंजन इसके बजाय (ज्यादातर चीजों के लिए iframe के अनुकूल समाधान हैं, लेकिन उन्हें खोजने में समय लगता है)

  3. एक प्रॉक्सी का उपयोग करें

  4. जहां उपलब्ध है (Google ऐसा मामला है), अपना स्वयं का पृष्ठ बनाएं और मूल (Google) पृष्ठ की शैली से मिलान करने का प्रयास करें, फिर खोज सामग्री प्राप्त करने के लिए API का उपयोग करें

ध्यान दें कि ट्रैफ़िक के आधार पर 3 और 4 की लागत संभावित रूप से बहुत अधिक होती है


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

यह उद्देश्य पर किया जाता है, वेबसाइट डेवलपर यह नियंत्रित करने के लिए प्रतिक्रिया में कुछ हेडर सेट कर सकते हैं कि कौन सी यूआरएल (अन्य वेबसाइट) अपनी सामग्री को इसमें लोड कर सकती है <iframe>, <frame> or <object>। यह आपकी वेबसाइट को हमलों से बचाने का एक तरीका है क्लिकजैकिंग.

उदाहरण के लिए: अधिकांश ब्राउज़र समर्थन करते हैं एक्स फ़्रेम-विकल्पों को हैडर

एक्स-फ्रेम-विकल्प के लिए तीन संभावित मूल्य हैं:

DENY
The page cannot be displayed in a frame, regardless of the site attempting to do so.

SAMEORIGIN
The page can only be displayed in a frame on the same origin as the page itself.

ALLOW-FROM uri
The page can only be displayed in a frame on the specified origin.

ध्यान दें कि X- फ्रेम-विकल्प: अनुमति-से क्रोम, सफारी आदि द्वारा समर्थित नहीं है।

आधुनिक ब्राउज़र नई सामग्री सुरक्षा नीति (CSP) के साथ इन्हें संभालते हैं। तो आप नए हेडर का उपयोग करके इसे नियंत्रित कर सकते हैं:

सामग्री-सुरक्षा-नीति: फ़्रेम-पूर्वजों

CSP 2.0 जो सभी नए ब्राउज़रों द्वारा समर्थित है, पूरी तरह से पीछे की ओर संगत है।

मुझे पता है कि यह आपके प्रश्न का उत्तर नहीं है, लेकिन यह जानकारी आपको कुछ परिप्रेक्ष्य देगी कि आप वेबसाइटों को अपने iFrame में लोड क्यों नहीं कर पा रहे हैं।