كيف يحصل Vimeo / YouTube وما إلى ذلك على عنوان URL في الإحالة في Iframes؟

StackOverflow https://stackoverflow.com/questions/4314635

سؤال

محير من كمية هائلة من الإجابات والمشاكل في هذا الموضوع.

الآن ، أقبل وضع الأمان JS الذي لا يُمنح الوصول عبر المجال من IFRAME إلى نافذة/صفحات الحاويات ولكن القرارات المثالية المذكورة في العديد من المقالات معرفات الشظايا أو Postmessage API حقا محير.

ما أريد فعله هو تكرار ما يبدو أن Vimeo قد انسحب ؛ رمز IFRAME الجديد التضمين الخاص بهم

<iframe src="http://player.vimeo.com/video/17263117" width="400" height="225" frameborder="0"></iframe>

الاستخدامات http://a.vimeocdn.com/js/player_combined.opt.js؟8ba54 ويبدو أنه قادر على ملء عنوان URL المرجع في مصدر IFRAME من صفحة التحميل الأصل. ie www.donkey.com/myvideo.html يتم إدراجها في http://player.vimeo.com/video/17263117 صفحة. عادة ، مع كتل الأمان على JS ، هذا غير ممكن مع Parent.location.href. لذلك ، نظرت إليها وكنت في مطاردة برية من أوزة لتجد كيف يمكن القيام بذلك.

لقد حاولت فهم JS ولعبت مع API PostMessage ولكن لم أحصل على أي شيء لإظهاره. أي إرشادات موضع ترحيب كبير.

هل كانت مفيدة؟

المحلول

لا يحتاج إلى الحصول عليه من <iframe> المصدر على الإطلاق (تمنع قيود الأمان هذا كما لاحظت بالفعل) ، يتم تمريره إلى الخادم كرأس ، ويتم تقديمه في الصفحة بواسطة خادمها لاستخدامه في JavaScript ، انظر إلى options متغير محدد في الصفحة.


لنأخذ مثالًا هنا: http://www.jsfiddle.net/nick_craver/ffupk/

إذا نظرت إلى طلب إلى http://player.vimeo.com/video/17263117,

سترى المرجع الذي تم تمريره:

Referer: http://fiddle.jshell.net/nick_craver/FfuPk/show/light/

في كتلة البرنامج النصي في الصفحة المحملة بواسطة iframe سترى:

var options = {config: {
               //....
               "referrer":"http:\/\/fiddle.jshell.net\/nick_craver\/FfuPk\/show\/light\/"
               //....
              };

لذا هذا كيف يحصل على المرجع ، في النهاية من الرأس الذي أرسله متصفحك إلى الخادم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top