View Full Version : سوال: آی فریم کردم بخشی از یک صفحه خارجی در صفحه جاری
alibahman47
دوشنبه 28 خرداد 1397, 21:59 عصر
سلام
1
https://www.digikala.com/Product/DKP-259340/
اگه بخوایم این صفحه رو بصورت آیفریم نشون بدیم بصورت زیر کار میکنیم :
1
<iframe src="https://www.digikala.com/Product/DKP-259340/" width="100%" height="200" frameborder="no"></iframe>
اگه بخوایم فقط بخشی از این صفحه مثلا قسمت "معرفی اجمالی محصول" رو بصورت آیفریم نشون بدیم چطوری باید انجامش بدیم ؟
و اینکه چرا بضی از سایت ها رو نمیشه بصورت آیفریم نشون داد , مثل سایت زیر :
https://www.trendyol.com/soho/siyah-kadin-sandalet-p-2838959?boutiqueId=187751
hakim22
سه شنبه 29 خرداد 1397, 19:08 عصر
شما نمی توانید فقط بخشی از یک صفحه را درون iframe قرار دهید.
با استفاده از هدر X-Frame-Options میشه دسترسی دیگر سایت ها رو به سایت خودتون از طریق iframe مسدود کنید. خیلی از مرورگرهای جدید این قانون رو اجرا می کنند ولی بعضی هم این هدر رو در نظر نمیگیرند.
برای سایتی که در بالا معرفی کردید در قسمت هدر مقدار
X-Frame-Options: SAMEORIGIN
قرار داده شده که یعنی iframe فقط میتونه از همون سایت باشه.
alibahman47
سه شنبه 29 خرداد 1397, 22:32 عصر
شما نمی توانید فقط بخشی از یک صفحه را درون iframe قرار دهید.
با استفاده از هدر X-Frame-Options میشه دسترسی دیگر سایت ها رو به سایت خودتون از طریق iframe مسدود کنید. خیلی از مرورگرهای جدید این قانون رو اجرا می کنند ولی بعضی هم این هدر رو در نظر نمیگیرند.
برای سایتی که در بالا معرفی کردید در قسمت هدر مقدار
X-Frame-Options: SAMEORIGIN
قرار داده شده که یعنی iframe فقط میتونه از همون سایت باشه.
ممنون بابت اطلاعات دقیقتون ,
بهم گفتن که از linq to html باید استفاده کنم , اطلاعاتی دارید چیه ؟
hakim22
سه شنبه 29 خرداد 1397, 22:52 عصر
مسئله ی شما اینه که می خواهید بخشی از اطلاعات یک سایت دیگه رو در سایت خودتون نمایش بدید. خب راه ساه استفاده از iframe هست که در این مورد جواب نمیده.
راه دیگه اینه که اطلاعات اون صفحه رو مثل یک مرورگر دانلود کنید و بعد وا کاوی کنید.
کل HTML رو از روی آدرس صفحه با استفاده از کلاس WebClient دانلود می کنید که به صورت یک HTMLDocument میشه. بعد قسمتی که می خواهید نمایش بدید رو از اون پیدا کنید در نهایت به صورت یک PartialView درون سایت خودتون قرار بدید.
کلاس HTMLDocument به صورت درختی همه ی تگ های HTML رو داره. باید بگردید و بخش مورد نظر رو از اون دربیارید. ابزار LinqToHTML کار کردن با این فایل درختی رو ساده تر میکنه ولی بهش نیاز ندارید. این ابزار مشابه Linq در EF میاد و کار جستجو و گزارش گیری از داده های درختی HTML رو راحت میکنه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.