چطور بفهمیم صفحه وب داخل آی فریم است یا خیر؟
منبع: https://rasanika.com
برای دونستن این که یه صفحه وب داخل آی فریم بارگذاری شده یا مرورگر، میتونیم از کد جاوا اسکریپت زیر استفاده کنیم:
window.self !== window.parent // یا window.self !== window.topآبجکت window.self خود صفحه رو بر میگردونه و آبجکت window.parent هم صفحه مادر یا parent این صفحه رو بر میگردونه. ولی وقتی داخل هیچ آی فریمی نباشیم window.parent بجای صفحه مادر، خود صفحه رو بر می گردونه. پس اگه این دوتا آبجکت یکی باشند یعنی داخل هیچ آی فریمی نیستیم.
همچنین بجای window.parent میتونیم از window.top هم استفاده کنیم. وقتی داخل آی فریم های تو در تو هستیم top بالاترین صفحه رو بر میگردونه و اگه داخل هیچ آی فریمی نباشیم مقدارش برابر همون self میشه.
نکته: وقتی دامنه آی فریم با دامنه صفحه ای که توش هستیم فرق داره ممکنه موقع دسترسی به آبجکت های window.parent یا window.top مرورگر خطای cross-origin بده پس کد کامل رو میتونیم به این صورت بنویسیم:
function isInIframe () {
try {
return window.self !== window.parent;
} catch (e) {
return true;
}
}
// استفاده به این صورت:
if(isInIframe()) {
console.log('داخل آی فریم هستیم');
} else {
console.log('داخل آی فریم نیستیم');
}منابع:
