الوصول إلى عنوان URL للإطار الأصلي من iFrame: القيود والحلول
يمكن أن يمثل الوصول إلى عنوان URL للإطار الأصلي من iFrame تحديًا، خاصة عندما يقع iFrame في مجال فرعي مختلف. ويرجع ذلك إلى القيود الأمنية التي تفرضها تدابير منع البرمجة النصية عبر المواقع (XSS).
عند الوصول إلى iFrame من نفس المجال والنطاق الفرعي مثل الإطار الأصلي، يجب أن يكون الوصول إلى موقع الأصل مباشرًا باستخدام تعبيرات مثل الأصل .document.location أوparent.window.location. ومع ذلك، كما أوضح المستخدم، يفشل هذا الأسلوب عندما يكون iFrame موجودًا في نطاق فرعي مختلف.
لتوضيح هذه النقطة بشكل أكبر، خذ بعين الاعتبار المثال المقدم حيث يتم استضافة pageA.html على http://www.mysite تتم استضافة .com/ وpageB.html (iFrame) على http://qa-www.mysite.com/. ستؤدي محاولة استرداد عنوان URL الخاص بالوالد من pageB.html إلى حدوث خطأ رفض الوصول. وهذا يؤكد أن النطاقات الفرعية تخضع أيضًا لقيود البرمجة النصية عبر المواقع.
على الرغم من أن الوصول إلى عنوان URL الخاص بالوالد مباشرة محظور في ظل هذه الظروف، إلا أن هناك حل بديل يمكن استخدامه. للحصول على عنوان URL للإطار الأصلي، يمكن استخدام كود JavaScript التالي:
var url = (window.location != window.parent.location) ? document.referrer : document.location.href;
ملاحظة:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3