-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
مرحبا، هل يمكنك عرض النتائح التي يعيدها استعلام SQL أي عمل echo للناتج result? أرجو تجريب الاتصال من متصفح مثلا وسوف تُعرض النتائج على الشاشة، أرجو تزويدنا بها. شكرا لك
- 5 اجابة
-
- 1
-
مرحبا، يبدو أن الخطأ موجود في هذا القسم: <?php if(empty($_SESSION['authorid'])){ _______________^^^^^^^^^^^^^^^^^^^^^^ echo '<div class="warn">خطأ بالصفحة يرجي اعادة محاولة مراسلة العضو </div>'; } هل يمكنك التأكد من الصلاحيات؟ وكيفية بدء الجلسة! وإطلاعنا على الشيفرة البرمجية التالية: <?php get_header(); ?> فأظن أنها هي مسؤولة عن الاتصال. شكرا لك
- 14 اجابة
-
- 1
-
مرحبا زينب، هل حاولتي تغيير نسخة برنامج PyCharm؟ تأكدي من وجود تحديثات. حبذا لو ترسلي صور للإخطارات لربما نصل لحل أفضل للمشكلة. بطبيعة الحال visual studio code هو محرر نصوص ممتاز ويقبل تثبيت إضافات مختلفة من قسم Extentions لإعطائه ميزات أكثر للتعامل مع مختلف لغات البرمجة و أطر العمل.. في حال رغبتك باستخدامه تأكدي من تثبيت الإضافات المناسبة بعد البحث في القسم Extenstion وتثبيت ما يلزم. يمكنا إيقاف التحذيرات في PyCharm بالخطوات التالية الموجودة علي موقعهم الرسمي من هنا اختصار الخطوات: ندخل إلى Settings/Preferences و نختار Editor | Inspections. تحديد inspection الذي نريد تعطيله ونُلغي التحديد من checkbox. حفظ التغييرات ليتم تطبيقها أحيانا ومع تحديث البرامج تظهر أخطاء، التي يتم حلها في تحديث آخر. تأكدي في حال وجود إضافات قيد التشغيل لربما سببت المشكلة. بالتوفيق
-
مرحبا، #! /usr/bin/env python3 import os # تضمين مكتبة النظام التي تؤمن مساعدة في التعامل مع الملفات في مثالنا import requests # HTTP requests تضمين مكتبة للتعامل مع الاتصال بالانترنت dir="/data/feedback/" # مسار ملف البيانات url= "http://1.1.1.1/feedback/" # مسار توجيه البيانات for file in os.listdir(dir): # قراءة قائمة الملفات في المسار المحدد # تعريف مصفوفات types = ["title","name","date","feedback"] dates = {} lines = [] # طباعة ملف print(file) with open(dir+"/"+file,"r") as txtfile: # txtfile حشو محتويات الملف في متحول x = 0 for line in txtfile: # طباعة الملف سطر سطر dates[types[x]] = line.rstrip('\n') # نخزن السطر من الملف في المصفوفة x += 1 print(dates) # طباعة مصفوفة التواريخ response = requests.post(url,json=dates) # JSON رد جواب للطلبية بصيغة بيانات أظن أنه يوجد خطأ في تعليمة tipos # خطأ dates[types[x]] = line.rstrip('\n') - قراءة ملف و إعادة توجيه البيانات منه لرابط محدد (تحقيق استجابة للطلبية) - إن المتحول X يمر على المصفوفة types ، ويخزن في dates حسب دليل معين (موقع X في types) أي [types[x بالتوفيق
- 2 اجابة
-
- 1
-
مرحبا، تحتاج لتخزين البيانت التي ترجعها من ال api في state يمكنك استخدام usestate من react hook مثلا state اسمها data بحيث تكتب ضمن axios .then(res=>setData(res)) وضمن ال flatlist في data تكتب data={data} بحيث الداتا ضمن القوسين هي ال state ,و الأخرى خاصة بالقائمة. عند تنفيذ الكود بالبداية تكون قيمة ال state empty وبعد التنفيذ يتم اسناد ناتج axios لل state اي تقوم رياكت بملاحظة التغيير في قيمة ال state وتغير قيمتها في كل مكان استخدمتها فيه. رياكت تعتمد على virtual dom بتلاحظ التغيير بجزء وبتعمل re-render لكل العناصر التي تم تعديلها. بالتوفيق
-
مرحبا، الرابط الثاني لايعمل. بالنسبة للأول: قمت بنسخ النص وعرضه في محرر النصوص. باستخدام axios وبعد الاتصال ستخزن النتيجة في العنصر res ثم للمرور على القيم نتبع السلسلة التالية: الوصول لقيم axios.get('some url ..') .then(function (response) { console.log(response.status); // ok console.log(response.totalResults); // number 7267 console.log(response.articles); // all articles as array console.log(response.articles[0].source.name); // Stuff.co.nz }); ملخص: سيعيد الاتصال غرض من نوع JSON Object و نستطيع استخلاص البيانات منه كما سبق .. طبعا تختلف خصائص الغرض حسب الAPI بالتوفيق # بالنسبة للطريقة الثانية، يبدو أنه ملف json مرفوع على استضافة، قم بتحميل الملف وقرائته بالطريقة العادية حيث تستطيع استخلاص البيانات منه.
-
مرحبا، يوجد IDE مخصص للغة ++C وأنا استخدمه ويحوي على مترجم اللغة و يعمل بكفائة اسمه CodeBlocks يمكنك تحميله من هنا قم بتحميل النسخة: codeblocks-20.03mingw-setup.exe لأنها تحوي جميع الملحقات مع المترجم GCC/G++/GFortran compiler and GDB debugger from MinGW-W64 project ، بعد التثبيت إدخل إلى إعدادت البيئة واختر المترجم المناسب يوجد أيضا Visual Studio لكنه ثقيل على الجهاز لا أنصحك به حاليا ربما تقوم بتحميله لمشاريع محددة في المستقبل.
- 2 اجابة
-
- 1
-
مرحبا، الحل: #include<iostream> using namespace std; int main() { string myName = "X__6YA__X"; for (int i = 1 ; i<= 5 ; i++){ cout << "cout id" << i << ": " << myName << "\n"; } } (لمأفهم عبارة الرقم الرقم التسلسيلعبارة الطباعة) إن كان القصد الرقم البرمجي لها يمكننا استخدام التالي: #include<iostream> using namespace std; int main() { string myName = "X__6YA__X"; for (int i = 1 ; i<= 5 ; i++){ cout << (cout << "cout id" << i << ": " << myName) << endl; } cout << "\n"; cout << (cout << " any text"); } بالتوفيق
-
مرحبا، السؤال الأول: حساب العاملي لعدد ما، هو الضرب المتكرر للأعداد من 1 حتى هذا العدد وتكتب هكذا: factorial = 10 result = 1 for num in range(1, factorial+1): # المجال من 1 حتى العدد المطلوب result *= num print(result) السؤال الثاني: l = [11,12,15,14,9,6,8,7,5,10,1,2,13,4,3] # الترتيب l = sorted(l) print(l) # بعد الترتيب يمكننا إيجاد أصغر و أكبر عنصر من أول و آخر المصفوفة المرتبة print(l[0]) # أصغر print(l[-1]) # أكبر # أو عن طريق تطبيق التابع التالي # لا يحتاج لترتيب print(max(l)) print(min(l)) for item in l: if item > 10 and item % 2 !=0: # عدد أكبر من 10 و فردي l.remove(item) # حذف عنصر من قائمة print(l) # حذف الأرقام بين الدليلين 3 و 7 l = l[:3]+l[7:] # ننسخ العناصر المرغوبة print(l) السؤال الثالث: نستخدم التابع join لدمج عناصر المصفوفة مع الفراغ، و split لتفريق العناصر myList = ["my" , "name" , "is" , "aya"] text = ' '.join(myList) # سلسة نصية print(text) # مصفوفة print(text.split(' ')) السؤال الرابع: يمكننا استخدام البحث عن طريق التعابيرالمنتظمة ويوجد مكتبة في بايثون لذلك re = regular expression سوف نختبر كل شرط على حدى ونطبع رسالة الخطأ التي تقابلها في حال بقيت قيمة flag = True ستكون الكلمة مقبولة import re password = input('enter a password:') flag = True # Valid Password if (len(password)<6 or len(password)>20): flag = False print("Error with Length") if not re.search("[a-z]", password): flag = False print("Error with small letters") if not re.search("[A-Z]", password): flag = False print("Error with capital letters") if not re.search("[0-9]", password): flag = False print("Error with numbers") if not re.search("[%#@$]", password): flag = False print("Error with one of %#@$") if flag: print("Valid Password") بالتوفيق
- 1 جواب
-
- 1
-
مرحبا، السؤال الأول: لدينا نص نريد طباعته 3 مرات، نعرف متحول نخزن فيه النص ثم نطبع النص مضروبا بعدد التكرارات (هذا مسموح بلغة بايثون ومن خصائصها) n\ يعبر عن سطر جديد (نهاية السطر) text = "_*_*_\n" print(3 * text) السؤال الثاني: نقوم بتفريق السلسة النصية text إلى مصفوفة بالاعتماد على المحرف " " (فراغ) و نقوم بعكس النتيجة باستخدام reversed و نطبع النتيجة. text الأولى تحوي سلسة نصية أما الثانية مصفوفة من كلمتين مع تغيير آخر محرف لخرج التابع print إلى فراغ حتى لايطبع سطرا جديدا إنما فراغ (لتبقى الكلمتين على نفس السطر) text = input('enter a text with space:') text = reversed(text.split(" ")) for i in text: print(i, end = ' ')
- 2 اجابة
-
- 1
-
مرحبا، نعم يجب تضمين جميع الـ Activities في Android Manifest نضع لكل واحدة Activity منفصلة و جميعهم نضعهم في Application بالشكل العام: <manifest ... > <application ... > <activity android:name=".ExampleActivity" /> ... </application ... > ... </manifest > مع بعض التفاصيل كالتالي: <application // activity 1 <activity android:name=".mainActivity"> android:label="@string/app_name1" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> // activity 2 <activity android:name=".loginActivity"> android:label="@string/app_name2" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> AndroidManifest.xml يحتوي على معلومات عن الحزمة الخاصة بك ، بما في ذلك مكونات التطبيق مثل الأنشطة والخدمات وأجهزة استقبال البث وموفري المحتوى و مفتاح الخرائط وما إلى ذلك. وأهم شيئ هو الصلاحيات مثل الوصول للإنترنت و مساحة التخزين .. الخطأ الذي يظهر عند استخدام Activity بدون تعريفها هو runtime error بالتوفيق
- 1 جواب
-
- 1
-
مرحبا، الأسئلة بسيطة أرجو المحاولة في حلهم .. السؤال الأول: نريد حلقة for واحد مع شرط الزوجية و تعليمة الطباعة. الاختبار: إذا كان باقي قسمة i على العدد 2 يساوي الصفر عندها i زوجي، وإلا يكون i فردي. #include<iostream> using namespace std; int main() { for (int i=1;i<=100;i++) { if (i % 2 == 0) { cout << i << " even\n"; } else { cout << i << " odd\n"; } } } السؤال الثاني: نطبع جميع الأعداد بصورة عادية .. عندما نصل لعدد من مضاعفات الرقم 4 نطبع سطر جديد. #include<iostream> using namespace std; int main() { for (int i=1;i<=100;i++) { cout << i << ' '; if (i % 4 == 0) { cout << endl; } } } بالتوفيق
-
مرحبا، هو طريقة لاختبار البرنامج، إذا كان موقع ويب أو تطبيق هاتف .. يعمل على تمثيل مخدم server افتراضي، يحوي قاعدة بيانات. تقوم انت بالاتصال على رابط URL محدد، فيرسل لك الموقع بيانات، ثم تقوم أنت بعرضها في برنامجك. اي باختصار أداة تدريبية تستخدمها في حال لم يكن لديك قاعدة بيانات، هو يمثل خدمة API اي ترسل بيانات خام. عند طلب اي رابط مع تمرير بارامترات معينة، سيعطيك الموقع بيانات متوافقة بشكل اساسي، تستقبل انت البيانات في background process و تعرضها في List view او قوائم أخرى. تعمل اتصال HTTP للرابط المراد، ثم تقوم ببناء قائمة لعرض النتائج إن شرح استخدامها يتطلب الكثير من كتابة الأكواد و تضمين مكتبات للأندرويد وجدت سلسة تعليمية قصيرة ارجو ان تكون مفيدة الرابط بالتوفيق
- 1 جواب
-
- 1
-
مرحبا، الأكواد بسيطة، ما رأيك بتجريب حل بعض الأسئلة؟ نستطيع إصلاح الأخطاء لديكِ و شرح الأفكار .. حل أول سؤال: n = input('enter a number:') while True: m = input('enter a number:') if m == "#": break if n == m: print(n + ' is repeated') break n = m لدينا متحولين n,m، m نحفظ فيه قيمة الرقم الأخير الذي أضفناه. n يحفظ قيمة قبل آخر رقم قمنا بإدخاله. بعد فحص القيم، نخزن m في n و نكرر نفس الخطوات. حل السؤال الثاني: text = input('enter a text with one space:') text = reversed(text.split(" ")) for i in text: print(i, end = ' ') نقوك بتفريق السلسة النصية text إلى مصفوفة بالاعتماد على المحرف " " (فراغ) و نقوم بعكس النتيجة باستخدام reversed و نطبع النتيجة text الأولى تحوي سلسة نصية أما الثانية مصفوفة من كلمتين مع تغيير آخر محرف لخرج التابع print إلى فراغ حتى لايطبع سطرا جديدا إنما فراغ (لتبقى الكلمتين على نفس السطر) حل السؤال الثالث: numbers = [1,2,3,4,5] Sum = sum(numbers) print(Sum) تعريف مصفوفة ثم تخزين ناتج الجمع (الناتج عن استدعاء تابع الجمع sum) في متحول له الاسم Sum حل السؤال الرابع: a = [1,2,3,4,5] b = [] for i in a: b.append(i*2) print(b) تعريف مصفوفتين الأولى a مع قيم ابتدائية و الثانية b فارغة. نمر على عناصر المصفوفة a و نضيف عند كل عنصر ضعف قيمته للمصفوفة b
- 7 اجابة
-
- 1
-
مرحبا فايز، المحتوى كخدمة أو محتوى مُدار كخدمة هو نموذج موجه نحو الخدمة ، حيث يقوم مزود الخدمة بتسليم المحتوى عند الطلب إلى مستهلك الخدمة عبر خدمات الويب المرخصة بموجب الاشتراك. الامتثال كخدمة (CaaS) عبارة عن اتفاقية مستوى الخدمة السحابية (SLA) أي service level agreement التي تحدد كيف سيساعد مزود الخدمة المُدارة (MSP) أي managed service provider المؤسسة على تلبية متطلبات الامتثال التنظيمي الخاصة بها. وهو إطار عمل يمكّن الشركات من الاستعانة بمصادر خارجية للأدوار والأرقام والمهارات اللازمة لتنفيذ الامتثال والحفاظ عليه ، لتسهيل وتبسيط الالتزام بالمتطلبات التنظيمية. وهي قيام الشركة بالالتزامم بالاتفاقيات القانونية و المالية. يؤثر هذا على كيفية عمل أنظمة الأمن الفرعية وكيفية تتبع المعلومات حول تفسير الحكومة أو الولايات القانونية يمكن للمزود تقديم نوع من التشفير الذي أصبح الآن تفويضًا حكوميًا أو معاملات سجل بطرق محددة للوفاء بنص القانون بالتوفيق
- 1 جواب
-
- 1
-
مرحبا، نقوم بإنشاء API لتطبيقنا، بحيث نوفر طرق خاصة بالاستعلام عن البيانات و إضافتها إنما باستخدام شيفرات برمجية بلغة مثل PHP لإدارة الطلبيات و معاجلة البيانات قبل إعادة إرسالها للعميل. بما أنه لديك خبرة في برمجة الويب، إن أي شيفرة برمجية كنت قد كتبتها فهي لا تقتصر على البيانات الخام إنما تحوي على خليط من عدة لغات برمجة سوية و تحوي على التصميم مضمن معهم. أي PHP + HTML + CSS. لكننا سنعاني من مشاكل عند محاولة ربط تطبيق الويب الخاص بنا مع أي طرفية أخرى (خدمة - موقع - تطبيق هاتف) حيث عند طلب أي ملف، سوف يرسل المخدم صفحة ويب كاملة وهذا يمثل مشكلة من حيث كيف لنا أن نفصل البيانات و نستخلصها و من ثم نعود لعرضها في جزء العرض الجديد المخصص لها. إن عمل API تقوم بفصل التصميم عن البيانات، بحيث نستطيع عرض نفس البيانات في أماكن مختلفة بتصاميم مختلفة (شكل العرض) ما يعطي سهولة في التعامل معها. ويمكننا حتى في نفس التطبيق فصل التصميم عن البيانات بعمل ملف (سكربت خاص بالاستعلام عن بيانات محددة) ونتصل به من ملف التصميم HTML. تسمح API بتوسيع التطبيق و تعديله بسهولة أكبر نسبيا من وجود جميع الشيفرات البرمجية في نفس الملف (الحشو) حيث كانت الصفحة الواحدة تحوي على خليط من عدة لغات برمجة، من استعلام قواعد البيانات إلى حشوها في عناصر HTML.. ما يعطي شيفرة برمجية غير منسقة و صعبة الفهم و التعديل و التطوير، وهذا يخالف مفاهيم و مبادئ تطوير البرمجيات. إن تعلمك لمفهوم MVC هو إضافة ممتازة أيضا يمكنك قراءة تعليقي من هنا طبعا لاتقتصر على شرح واحد يوجد العديد من التفاصيل. بالتوفيق
- 2 اجابة
-
- 2
-
مرحبا، أنت تضيف الكلمة المفتاحية struct في كل مكان و هذا خاطئ. نستخدمها فقط عند تعريف سجل جديد ثم نستخدم اسم هذا السجل مكان تعريف المتحولات التي من نوعه. استخدمت التمرير بالعنوان & لا أعرف إذاكنت قد درسته وتعرفه من قبل. عند تعريف المصفوفة mark قمت بإسناد قيمة إبتدائية لها بالقيمة 0 لجميع العناصر. بما أنك تقوم بتعريف ترويسة للتوابع نكتبهم أسفل الدالة main وإلا اكتب جسم التابع كاملا قبل main. في التابع CalcAvrg يمكنك استخدام حلقة مثل التي استخدمتها لإدخال العلامات أفضل من هذا الشكل الذي كتبت به. #include<stdio.h> #include<stdlib.h> struct Student { int mark[5][5] = {{0}}; }; void MStudent( Student& myStruct); void CalcAvrg( Student& myStruct); int main() { struct Student dene; MStudent(dene); CalcAvrg(dene); return 0; } void MStudent( Student& myStruct) { int i,j; for(i=0; i<5; i++) { for(j=0; j<5; j++) { printf("%d. Student's mark for %d. exam :\n", i+1,j+1); scanf("%d", &myStruct.mark[i][j]); } } } void CalcAvrg( Student& myStruct) { int i; for(i=0; i<5; i++) { printf("%d. Exam's average is: %d\n", i+1, (myStruct.mark[0][i] + myStruct.mark[1][i] + myStruct.mark[2][i] + myStruct.mark[3][i] + myStruct.mark[4][i])/5); } } في حال لا تريد التمرير بالعنوان علينا إعادة إسناد القيمة المعادة من كل دالة إلى المتحول في الدالة main. حتى نحتفظ بآخر نسخة من قيم السجل فيها. بالتوفيق
- 1 جواب
-
- 3
-
مرحبا، تنقسم برمجة مواقع الويب إلى قسمين رئيسيين هما: تصميم الموقع Front-end أي ما يظهر للمستخدم برمجة الموقع Back-end أي عملية إدارة قواعد البيانات ومعالجة البيانات (قسم المخدم) تصميم المواقع يعتمد على التقنيات التالية: HTML: تستخدم لتحديد بنية صفحات الموقع و أقسامه بالشكل الأساسي CSS: تستخدم لعمل التنسيقات و ترتبط مع HTML JavaScript: هي لغة البرمجة التي تعمل على المتصفح و تستخدم بإدارة الواجهة (معالجة بيانات و تحريك العناصر) مكتبات وإطارات عمل مهمة لتصميم المواقع (مستوى متقدم): jQuery: مكتبة في لغة البرمجة JavaScript تسهل العمل. Bootstrap: إطار عمل CSS يسهل عمل التنسيقات. برمجة المواقع يعتمد على التقنيات التالية: أولا: قواعد البيانات ومنها: عليك تعلم SQL MySQL PostgreSQL MongoDB .. وغيرهم ثانيا: لغات البرمجة لمواقع الويب: PHP: ونستخدم معها إطار العمل Laravel JavaScript: ونستخدم معها إطار العمل Node.JS Python: ونستخدم معها إطار العمل Django مسار التعلم: الأساسيات: HTML - CSS - JavaScript ثم تختار نوع قاعدة بيانات مع لغة برمجة مثل MySQL + PHP تعلم أولا الأساسيات وبعد تمكنك منهم يمكنك الانتقال لباقي التفاصيل و يسهل عليك الاختيار سترى الطريق طويل لكن علينا التقدم خطوة بخطوة. بالتوفيق
-
مرحبا عبد الواحد، عمل متقن ومميز جدا وأعجبني. الملاحظة1: في آخر صورة التي تعرض الخريطة, بحيث أظن المشكلة في اقتصاص الصورة (الحواف اليسرى أصغر من اليمنى و غير متساوي). الملاحظة1: أيقونات التواصل الاجتماعي مكانها غير موفق و قريبة من الحواف وصغيرة الحجم ولون الخلفية الأصفر أيضا لا أجده مناسبا. الملاحظة3: أنت تتبع نفس الأسلوب مثل التصاميم السابقة وأقترح عليك تجريب أنماط جديدة. أرجو رفع الملفات على استضافة بحيث نستطيع تجريب الموقع كما فعلت سابقا على GitHub Pages هل التصميم متوافق مع مختلف الشاشات Responsive؟ بالتوفيق
- 3 اجابة
-
- 1
-
مرحبا محمود، التصميم الأولي: لدينا جدولين المستخدمين و المنشورات والعلاقة بينهم many to many. يتم اسقاط هذه العلاقة في جدول جديد ندعوه سجل المشاهدات فرضاً. إذا قام مستخدم ما باستعراض موضوع عشوائي معين (بعد فتح الموقع نعرض له أول موضوع) (نشكل رقم عشوائي لجلب المنشور الجديد و نتأكد من عدم وجوده في سجل المشاهدات لنفس هذا المستخدم) , بعد تحميل المنشور نضيف لجدول المشاهدات سجل جديد بتاريخ اليوم (المستخدم - المنشور - تاريخ اليوم).. بنية سجل المشاهدات : يحوي رقم المستخدم و رقم المنشور و تاريخ القراءة. إن موضوع تسجيل جميع المشاهدات التي قام بها مستخدم ما يمنع إمكانية تكرار عرض نفس المنشور له في يومِ آخر.. (( يمكنك عرض المنشورات التي قرأها باستعلام بسيط وعرضها في قائمة جانبية حيث يتسنى للمستخدم إعادة قراءة هذه المنشورات في حال قام بالتصفح خلال نفس اليوم)) نكرر العملية بالقيام باستعلام يعد عدد مرات وجود سجل مشاهدة لهذا المستخدم في هذا اليوم. - إذا كنت لا تريد حفظ المنشورات لكل مشاهدة سيعرض منشورات مكررة. - بما أن المشاهدات تكون بشكل متسلسل فإن التواريخ تكون مرتبة ما يمكنك من الاعتماد على هذه الختصية لتسريع القيام بالاستعلامات. بالتوفيق
-
مرحبا نور الدين، يوجد خاصية في HTML + JS تقوم بتشغيل الفيديو بوضع Full Screen وهي تتوفر بعدة أسماء حسب المتصفح: /* Function to open fullscreen mode */ function openFullscreen() { if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.webkitRequestFullscreen) { /* Safari */ elem.webkitRequestFullscreen(); } else if (elem.msRequestFullscreen) { /* IE11 */ elem.msRequestFullscreen(); } } حيث في هذا المثال نستدعي openFullScreen وهو function لتفعيل هذه الخاصية ويمكنك وضعها مباشرة(او استدعاء التابع) في الشيفرة لديك بعد تحميل الصفحة لتفيل وضع ملئ الشاشة. توثيق مفيد من موسوعة حسوب رابط1 - رابط2 يوجد مثال من هنا ويمكنك فتح التوثيق requestfullscreen كما يوجد الخاصية webkitEnterFullscreen ويمكنك تشغيلها حسب المثال التالي: <!DOCTYPE html> <html> <head> <title>HTML5 Video Full Screen Mode Example</title> <script> var myVideo; window.onload = function() { myVideo= document.getElementById("myVideoFile"); btnfullMode.addEventListener("click", setFullScreenMode, false); video.addEventListener("loadedmetadata", makeFullModeVisible, false); } function makeFullModeVisible() { if (video.webkitSupportsFullscreen) { document.getElementById("btnfullMode").style.visibility="visible"; } } function setFullScreenMode() { video.webkitEnterFullscreen(); } </script> </head> <body> <div id="video_container"> <video width="320" height="176" src="myVideoFile.mp4" id="myVideoFile" autoplay /> </div> <br/> <button type="button" id="btnfullMode" > Open Video in Full Screen mode </button> </body> </html> بالتوفيق