2011-12-08 12 views
47

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

धन्यवाद!

संपादित करें: मुझे नहीं लगता कि किसी भी प्रकार का AJAX काम करेगा क्योंकि यह क्रॉस-साइट है, और जावास्क्रिप्ट आपको ऑफ-साइट सामग्री को लोड करने नहीं देता है (जहां तक ​​मुझे पता है)।

उत्तर

38

आप jQuery के साथ बाहरी पृष्ठ लोड कर सकते हैं:

 
<script>$("#testLoad").load("http://www.somesite.com/somepage.html");</script> 
<div id="testLoad"></div> 
//would this help 
+1

+1 - मुझे लगता है कि आपको अभी भी www.orginaldomain.com से www.somesite.com पर एक क्रॉस डोमेन AJAX कॉल की अनुमति देनी होगी। – DefyGravity

+1

मुझे नहीं लगता कि आप जावास्क्रिप्ट का उपयोग कर सकते हैं क्योंकि यह सुरक्षा कारणों से सीमित है। DefyGravity, मैं इसके बारे में कैसे जाना होगा? – JacobTheDev

+11

यह कोड बाहरी पृष्ठ पर निर्भर करता है "अनुमति-नियंत्रण-अनुमति-मूल: *" सक्षम करें, जिसे आप गारंटी नहीं दे सकते। – FlavioEscobar

2

प्रश्न अच्छा है, लेकिन जवाब है: यह उस पर निर्भर करता है।

यदि अन्य वेबपृष्ठ में कोई फॉर्म या टेक्स्ट नहीं है, उदाहरण के लिए आप सटीक सामग्री को चुनने के लिए और उसके बाद अपने पृष्ठ पर दिखने के लिए कर्ल विधि का उपयोग कर सकते हैं। आप इसे iframe का उपयोग किए बिना कर सकते हैं।

लेकिन, यदि आप जिस पेज को एम्बेड करना चाहते हैं, उदाहरण के लिए एक फॉर्म है, तो यह सही ढंग से काम नहीं करेगा, क्योंकि फ़ॉर्म हैंडलिंग उस साइट पर है।

28

या आप वस्तु टैग इस्तेमाल कर सकते हैं: क्या कुछ इस तरह के बारे में

http://jsfiddle.net/7MaXx/

<!--[if IE]> 
<object classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" data="http://www.google.be"> 
<p>backup content</p> 
</object> 
<![endif]--> 

<!--[if !IE]> <--> 
<object type="text/html" data="http://www.flickr.com" style="width:100%; height:100%"> 
<p>backup content</p> 
</object> 
<!--> <![endif]--> 
+1

ऑब्जेक्ट टैग में ऊंचाई के साथ समस्या है। भले ही ऊंचाई दें: 100%; अभी भी काम नहीं करता है। केवल निश्चित ऊंचाई मूल्य के साथ काम करते हैं। अन्यथा बाहरी वेब पेज की ऊंचाई और चौड़ाई प्राप्त करने की आवश्यकता है। वह कुछ जो मुझे अभी तक नहीं मिला। यदि आप –

+0

की सहायता कर सकते हैं तो आप ऊंचाई को 2500px या कुछ की तरह सेट कर सकते हैं ... मेरे पास एक ही समस्या है। –

+0

मेरे मामले के लिए मुझे ऑब्जेक्ट के अंदर एक गतिशील रूप से बनाई गई HTML सामग्री प्रदर्शित करना पड़ा। मैं निम्नानुसार jQuery का उपयोग कर ऑब्जेक्ट टैग रनटाइम की डेटा विशेषता को प्रतिस्थापित कर रहा था। element.attr ('डेटा', "डेटा: टेक्स्ट/एचटीएमएल; charset = utf-8," + escape (HTMLContent)) और यह आकर्षण की तरह काम करता था। –

1

?

<?php 
$URL = "http://example.com"; 
$base = '<base href="'.$URL.'">'; 
$host = preg_replace('/^[^\/]+\/\//', '', $URL); 
$tarray = explode('/', $host); 
$host = array_shift($tarray); 
$URI = '/' . implode('/', $tarray); 
$content = ''; 
$fp = @fsockopen($host, 80, $errno, $errstr, 30); 
if(!$fp) { echo "Unable to open socked: $errstr ($errno)\n"; exit; } 
fwrite($fp,"GET $URI HTTP/1.0\r\n"); 
fwrite($fp,"Host: $host\r\n"); 
if(isset($_SERVER["HTTP_USER_AGENT"])) { fwrite($fp,'User-Agent: '.$_SERVER 

["HTTP_USER_AGENT"]."\r\n"); } 
fwrite($fp,"Connection: Close\r\n"); 
fwrite($fp,"\r\n"); 
while (!feof($fp)) { $content .= fgets($fp, 128); } 
fclose($fp); 
if(strpos($content,"\r\n") > 0) { $eolchar = "\r\n"; } 
else { $eolchar = "\n"; } 
$eolpos = strpos($content,"$eolchar$eolchar"); 
$content = substr($content,($eolpos + strlen("$eolchar$eolchar"))); 
if(preg_match('/<head\s*>/i',$content)) { echo(preg_replace('/<head\s*>/i','<head>'. 

$base,$content,1)); } 
else { echo(preg_replace('/<([a-z])([^>]+)>/i',"<\\1\\2>".$base,$content,1)); } 
?> 
+0

ओपी ने जेएस समाधान के लिए कहा। इसके अलावा, टैग में ओपी के बारे में कुछ भी नहीं है, केवल एएसपीनेट –

+0

यदि यह सही समाधान नहीं है, तो यह अन्य लोगों के उपयोग के लिए एक बहुत उपयोगी PHP स्क्रिप्ट है, +1 – electroid

+0

जेएस आवश्यकता के लिए वैध उत्तर नहीं है। मैं PHP का उपयोग नहीं करता। यह मेरी मदद कैसे करेगा? हालांकि आप एक छद्म कोड डाल सकते हैं। यह उपयोगी होगा – Tarun

1

PHP का उपयोग क्यों नहीं करें!

<?php print file_get_contents("http://foo.com")?> 

आप दोनों साइटों के मालिक हैं, तो आप ठीक करने के लिए सर्वर अंत में हेडर से भरा घोषणा के साथ इस सौदे आवश्यकता हो सकती है: यह सब सर्वर साइड है। खूबसूरती से काम करता है।

+0

PHP आपके सर्वर पर अतिरिक्त लोड का उत्पादन करने वाले जेपीबी जुर्माना करेगा। क्लाइंट साइड सॉल्यूशंस (जेएस) आपके सर्वर को अच्छा और ताजा रखेगा – augusto

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