View Full Version : سوال: دریافت محتویات iframe Html
zodiack
پنج شنبه 16 مهر 1394, 14:32 عصر
من می خواستم که محتویات داخل iframe را دریافت کنم ( برنامه local است و در iframe ام سایتی دیگر را مثل:google.com را باز میکنم. )
حالا خطایی دریافت می کنم مبنی بر اینکه نمی شه محتویات iframe ای با آدرس src ای که آدرس منبع آن مثل domain صفحه ای اصلی ام نیست را، بخونم!
error:
Blocked a frame with origin "http://localhost:46681" from accessing a frame with origin "http://google.com". Protocols, domains, and ports must match.
کسی راه حلی داره؟!
frednasri
پنج شنبه 16 مهر 1394, 15:13 عصر
سلام.
این یه خطای امنیتیه (این لینک (https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)رو ببینید). در مرورگرهای جدید، شما به دلایل امنیتی نمی تونید با استفاده از جاوااسکریپت از یک وبسایت از طریق iframe به وبسایت دیگه ای دسترسی پیدا کنید. یه راه حل اینه که (البته این شاید اصلاً به کار شما نیاد) از یه متد html5 به نام window.postMessage استفاده کنید که با یه جستجوی اینترنتی می تونید اطلاعاتی در موردش به دست بیارید.
موفق باشید.
zodiack
شنبه 18 مهر 1394, 06:26 صبح
یعنی هیچ راه حلی نیست؟
frednasri
شنبه 18 مهر 1394, 09:48 صبح
سلام.
چطور از پاسخ من این استنباط رو کردید که "هیچ راه حلی نیست"؟
من گفتم یکی از راه هاش اینه که از window.postMessage استفاده کنید.
یکی دیگه استفاده از پلاگین easyXDM (https://github.com/oyvindkinsey/easyXDM) هستش.
و یا اینکه راه هایی تو هر یک از این صفحات (البته به زبان انگلیسی) توضیح داده شده: یک (http://stackoverflow.com/questions/6474484/get-cross-domain-iframe-content) دو (http://madskristensen.net/post/iframe-cross-domain-javascript-calls) سه (https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/Cross_Domain_Content_Scripts)
یکی دیگه استفاده از یه زبان سمت سرور مثل PHP و استفاده از کدی مشابه کد زیره:
echo file_get_contents('http://url-of-the-iframe/content.php');
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.