الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[تم الحل]detect If In A Frame

مغلق
بدأه msayed2004 في 16 أغسطس 2007 · 20 رد · 1,273 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

لو عندنا صفحة بها 2 Frame واحد mainFrame و التانى topFrame و بالـ topFrame رابط لفتح صفحة فى الـ mainFrame هيبقى الكود زى اللى مرفق.

Frames_Test.rar

لكن سؤالى هنا الصفحة اللى هنستدعيها للـ mainFrame هل ممكن تتأكد أنها بداخل الـ Frame ده أم لا و لو لا تعمل أعادة توجيه للصفحة بحيث أن الفرامات تتحمل تانى و الصفحة اللى هنستدعيها تفتح فى مكانها :blink: .

أتمنى أنكم تكونى فهمتم سؤالى الغريب :unsure: .

icon13.gif ملحوظة بعد البحث لم أجد شئ مفيد بالمنتدى و لا شئ مفيد من خلال Google فلو الموضوع طرح قبل كده يا ريت تزودونى بالروابط.

icon13.gif ملحوظة أخرى تهمنى التوافقية مع Firefox عن الـ IE :P

و شكرا لك من يساعد :D .

و السلام عليكم و رحمة الله و بركاته

تم تعديل هذه المشاركة بواسطة msayed2004 في 24 أغسطس 2007 في 17:55

#2

نعم فهمت لا تريد من هذه الصفحة ان تعرض بشكل مباشر وانما من داخل ال mainFrame الخاص فيك

لكن حسب معلوماتي القديمة ب Web لا يمكنك تحديد فيما اذا كنت ضمن iframe او لا.. لكن يمكنك بكود جافاسكربت او PHP مثلا ان تحديد الصفحة السابقة التي أتيت منها او العنوان السابق فان لم يكن من داخل صفحة الـ topFrame يبقى تعمل توجيه.. للأسف لست خبيراً جداً في موضوع الإجابة المباشرة الكاملة في هذه الأمور - علي دراسة بعض الأمور لو أردت أن آتيك برد كامل مع الكود والصور والبتاع ده خخخخخخخخخخ :D ;)

اقتباس
ملحوظة أخرى تهمنى التوافقية مع Firefox عن الـ IE :P

والله شوف أحياناً FF عبيط ببعض سكربتات الجافا اللي ما بتكون متوافقة معه لذلك لو في دعم PHP يبقى أفضل وأضمن

تم تعديل هذه المشاركة بواسطة Junkie في 16 أغسطس 2007 في 20:31

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

مهى المشكلة فى أن الصفحة تتفتح برابطها المباشر فى New Tap أو New Window !

بس مفيش دعم للـ PHP فى المكان اللى هستعملهم فيه :(

عموما خد وقتك.

#4

وأنا كما قلت لك يكون في الصفحة كود جافا سكربت (امرك لله) ينظر من اين تم التوجيه يعني انت من وين اجيت على هذه الصفحة فلو لم يكن من نفس النطاق الذي عليه صفحتك ال topFrame يعيده الى نطاقك

في الـروابط الموجودة في الـ topFrame لازم تكون موجهة لعرض الصفحة ضمن الـ mainFrame

<a href='some page' target='mainFrame'>link</a>

.... code removed ....

<iframe src='main.html' name='mainFrame' width= height= ></iframe>

كي يتم فتح الصفحة ضمن الـ mainFrame وليس ضمن صفحة جديدة.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5
في الـروابط الموجودة في الـ topFrame لازم تكون موجهة لعرض الصفحة ضمن الـ mainFrame

مهى دى نفس الفكرة اللى فى المرفق بتاعى على ما أعتقد , خللينى أقولها بشكل تانى : لو واحد عرف عنوان الصفحة و عن عمد حط العنوان فى الـ Address Bar و تصفحها , أنا بقى عايز الصفحة تكون أذكى منه و تفتح زى ما أنا عايز ( فى فرام ).

بالمناسبة لقيت موقع بيعمل كده بس الصفحات كبيرة على تحمل أعصابى لقراءة أكواد ويب : VBnet , حتى لو قلتله Open Frame in new tab بيحمل الفرام اللى على الشمال برده.

تم تعديل هذه المشاركة بواسطة msayed2004 في 17 أغسطس 2007 في 00:03

#6

"لو واحد عرف عنوان الصفحة و عن عمد حط العنوان فى الـ Address Bar و تصفحها , أنا بقى عايز الصفحة تكون أذكى منه و تفتح زى ما أنا عايز ( فى فرام )"

وده كلامي من الصبح يا شيخ اصحى بقا :lol:

على كل رح شوف الموقع ومثالك ورد عليك ان شاء الله

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

! Up & Down

:(

#8

هل جربت فى صفحة المصدر للiframe أن تفعل التالى

if (window.location=="....")
{
}
else
{
}
#9

شاكر جدا جدا جدا على الرد.

سؤال عبيط على الماشى :P : هل أستبدل النقاط بأسم الـ Frame ؟

تم تعديل هذه المشاركة بواسطة msayed2004 في 21 أغسطس 2007 في 21:06

#10

أيوة باسم Frame أو بالظبط بما ستضعة فى الAdress bar عشان يعرض صفحة الFrame دون بقية الFrames كما تريد

#11

منفعش معايا ( فى الغالب أنا اللى معرفتش أستخدمة بالضبط ) , المهم أن بالبحث عن window.location و صلنى لصفحة فيها حل ظريف :

<script type="text/javascript">
if (top.frames.length==0)
{
document.write("Not in a frame , I will redirect you")
}
else
{
document.write("Yes it is fine now")
}

طبعا كود الطباعة للتوضيح , السؤال دلوقتى ( عملت بحث بـ Google و هنا لقيت تعاقيد أو مواضيع بدون حلول ) عايز امرر من الصفحة اللى أكتشفت أنها بدون Frame متغير للصفحة الرئيسية علشان بعد ما تحمل ترجع تحمل الصفحة اللى بدون Frame فى الـ Frame بتاعها.

#12

جرب ده

if (top.frames.length==0)
{
window.location="MainFrame.htm"
top.frames.location.href=window.location
}

و بكده حيحمل الصفحة دى فى الTop Frame (مهما كانت) على أساس طبعا ان صفحه الMain Frame هى MainFrame.htm

جربة ولو منفعش ادينى مرفق اجرب فية

تم تعديل هذه المشاركة بواسطة ASDen في 21 أغسطس 2007 في 23:56

#13

كده صحيح هنرجع للنظام الأصلى للـ Frames بس مش هيحمل الصفحة فى الـ mainFrame !

Frames_Test.rar

#14

أنا آسف على التأخير ولكن تجمعت عليا النت والكهربا :P

أنا استخدمت الCookie ك General varaible

Frames_Test2.rar

#15

ياعم محمد , اشتغل معاك ولا لأ انت مردتش عليا :( :(

#16
var mainpage= "main.html"; // full path to your main page
if (window.location == window.self) { document.location = mainpage; }

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#17
ASDen كتب:
ياعم محمد , اشتغل معاك ولا لأ انت مردتش عليا :( :(

تمام , أنا بس كان وقت فراغى أمبارح عبارة عن صراع محتدم مع الـ REAL Basic IDE

آخر طلب علشان يبقى كله تمام , أزاى أعرف أن المتصفح لم يقبل الكوكيزاية بتاعة الصفحة ؟!

ثانكث تو يو تو Junkie ( خللى أنور يترجمها :lol: )

#18

بسيطة يا سيدى بعد ما تحط الكوكيز جرب تقراها قرت معاك تمام والا فان المتصفح رفضها

#19

وده سكربت عشان تحصل على بيانات الـ cookie بصورة واضحة ومفهومة:

<script language="javascript">
function get_cookie ( cookie_name ){var results = document.cookie.match (cookie_name + '=(.*?)(;|$)' );if ( results )return ( unescape ( results[1] ) );else return null;}function set_cookie ( name, value, exp_y, exp_m, exp_d, path, host, secure ){var cookie_string = name + "=" + escape ( value );if ( exp_y ){var expires = new Date ( exp_y, exp_m, exp_d );cookie_string += "; expires=" + expires.toGMTString();}if ( path ) cookie_string += "; path=" + escape ( path );if ( host ) cookie_string += "; host=" + escape ( host );if ( secure ) cookie_string += "; secure";document.cookie = cookie_string;}
</script>

والاستخدام:

<script language="javascript">
var x = get_cookie ( "msayed2004" );
if (x == null) { alert("no cookie detected"); } else { alert("a cookie has been detected"); }
</script>

معلش الكود فوق "معجوق" شوي عشان انا بحذف الفراغات لما بستخدمه في الـ XSS لانه مضطر اقلل عدد الحروف قدر الإمكان :)

تم تعديل هذه المشاركة بواسطة Junkie في 24 أغسطس 2007 في 17:20

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#20
اقتباس
بسيطة يا سيدى بعد ما تحط الكوكيز جرب تقراها قرت معاك تمام والا فان المتصفح رفضها
يبدو أنه ديه الطريقة الوحيدة , أوك هستخدم الكود بتاع Junkie - ايه الأسم اللى مش راضى يتحفظ ده -
اقتباس
معلش الكود فوق "معجوق" شوي عشان انا بحذف الفراغات لما بستخدمه في الـ XSS لانه مضطر اقلل عدد الحروف قدر الإمكان

طب هنا سؤال عبيط هو تنسيق الأكواد بالـ Indentation بيسبب زيادة بحجم الصفحة و لا لا يفرق مع المتصفحات ؟!

شاكرين جدا يا شباب.

تم تعديل هذه المشاركة بواسطة msayed2004 في 24 أغسطس 2007 في 17:53

#21

طبعا

المسافات الزيادة وطريقة الكتابة تؤثر في سرعة التصفح

ضع سمات CSS و JS في ملفات خارجية عشان يتعمل لها cache وخفف من استخدامك للجداول واستبدلها بالرسم بواسطة CSS لو تقدر

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

هذا الموضوع مغلق.

مواضيع مشابهة