اذهب إلى المحتوى

Mohamed Lamin Mahmoudi

الأعضاء
  • المساهمات

    394
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    4

كل منشورات العضو Mohamed Lamin Mahmoudi

  1. أريد خطوات لكي أثبت تطبيق سطح مكتب electron بعد أن أنهيته ,لا أريد الطريقة المشروحة في مسار الالكترون في دورة تطبيقات جافا سكريبت. طبقت بعض الفيديوهات على اليوتيوب لكن بعد أن أثبت التطبيق لا يعمل بشكل جيد .
  2. هكذا تظهر بالحجم المطلوب لكن المحتوى لايظهر كاملا
  3. مازالت تطبع الصفحة بحجم كبير كيف أخرج نافذة التحديد لكي أحدد من خلالها الحجم ؟ var opti = { silent: false, printBackground: false, color: false, margin: { marginType: 'printableArea' }, landscape: false, pagesPerSheet: 1, collate: false, copies: 1, // header: 'Header of the Page', // footer: 'Footer of the Page', pageSize:'A5', scaleFactor:100 } let win = new BrowserWindow({ show: false, webPreferences: { nodeIntegration: true, contextIsolation: false } }); win.loadFile('recipe.html'); win.webContents.on('did-finish-load', () => { win.webContents.send('dataRecipe'); win.webContents.print(opti,function (success, failureReason) { if (!success) console.log(failureReason); console.log('Print Initiated'); }); });
  4. هل هناك طريقة أحدد بها حجم الورقة المراد طباعتها لأنه مباشرة يبدأ بطباعة الوصفة بحجم A4 وأنا أريد أن احدد حجمها ب A5???
  5. نفس الشئ مزال يطبع الصفحة فارغة وانا أريده أن يطبعها مملوءة بالبيانات المحقونة فيها من ملف js win.webContents.on('did-finish-load', () => { win.webContents.send('dataRecipe',data); win.webContents.print({silent:true},function (success, failureReason) { if (!success) console.log(failureReason); console.log('Print Initiated'); }); }); حدث الضغط على الزر مكتوب في الملف drug.js صفحة html الخاصة به هي drug.html ملف الوصفة هو recipe.html ges.rar
  6. عندي وصفة أريد أن أطبعها بدون أن أفتح صفحة html الخاصة بها main.js ipcMain.on('open-recip',function(e,data){ var opti = { silent: false, printBackground: true, color: false, margin: { marginType: 'printableArea' }, landscape: false, pagesPerSheet: 1, collate: false, copies: 1, header: 'Header of the Page', footer: 'Footer of the Page' } let win = new BrowserWindow({ show: false, webPreferences: { nodeIntegration: true } }); win.loadFile('recipe.html'); win.webContents.on('did-finish-load', () => { win.webContents.send('dataRecipe',data); win.webContents.print(opti, (success, failureReason) => { if (!success) console.log(failureReason); console.log('Print Initiated'); }); }); index.js const {ipcRenderer} =require('electron'); ipcRenderer.on('dataRecipe',function(){ let Name=document.getElementById('name'); let Age =document.getElementById('age'); let textname=document.createTextNode(window.localStorage.getItem('name')); let textage=document.createTextNode(window.localStorage.getItem('Age')); console.log(textage); console.log(textname); Name.appendChild(textname); Age.appendChild(textage); let DrugsLoc=window.localStorage.getItem('Drugs'); console.log(DrugsLoc.split(',').slice(1)); let Drugs=DrugsLoc.split(',').slice(1); let i=0; let nameD; let nameS; let form; let des; while(i<Drugs.length){ console.log(Drugs[i]); nameD= Drugs[i++]; nameS=Drugs[i++]; form=Drugs[i++]; des=Drugs[i++]; let ul = document.querySelector("ul"); let li = document.createElement("li"); li.innerHTML = nameD+ "(" + nameS+ ")" + form + "<div>" + des; "</div>"; ul.append(li); } }) المشكل هو أن الوصفة تطبع فارغة ولا تظهر عليها البيانات المدخلة فيها من الذاكرة المحلية ! سابقا كنت أفتح الوصفة لأتاكد من ظهور البيانات فيها وكانت تظهر أما الان أريد ان اطبع الوصفة بدون فتح الصفحة كيف افعل ذلك ؟
  7. ماهي الفكرة التي يستعملها المبرمجين في طباعة نموذج إستمارة أو تذكرة أو وصفة طبية في تطبيقاتها ، هل ينشئونها على شكل ملف html ثم يحولونه ل pdf ثم يطبعونه، أم هناك مكاتب خاصة يستعملونها ؟ ثانيا هل يستعملون نفس الفكرة أم تختلف من إطار عمل لأخر ؟؟
  8. شكرا هذه هي الفكرة التي كنت أبحث عنها تم حل الشكل
  9. عندما أضغط على parasitologie يتم عرض بياناتها فقط لكن عندما أرجع وأضغط على Rhumatologie أو تخصص أخر يعرض لي بيانات parasitologie وتحتها بيانات Rhumatologie لكن أنا أريد أن أعرض فقط بيانات التخصص المضغوط عليه أظن أن المشكل هو أن الصفحة تحفظ البيانات عندها وعند الرجوع إليها مرة أخرى تعرض البيانات القديمة وتحتها الجديدة . حاولت عمل فكرة حذف العناصر من العنصر الحاوي لها عند الضغط على زر الرجوع في كل مرة لكن لم تنجح الفكرة مازالت الصفحة تحفظ البيانات ماهي فكرة هذه العملية let h=document.createElement('h2'); let con=document.querySelector('#Diseases'); let l; let head=$('#head'); ipcRenderer.on('data-Maladie',function(e,data,NamePath){ let text=`(${NamePath})`; h.innerHTML=text; head[0].appendChild(h); for(let i=0; i<data.length;i++){ let con=document.querySelector('#Diseases'); l=document.createElement('li'); let li=` ${data[i]}`; l.innerHTML=li; l.classList.add('maladie'); l.style.cssText="color: #133764;border: 2px solid #007bff; margin: 10px; padding: 10px 12px;font-size: 15px;font-weight: bold;border: 1px solid rgba(0,0,0,.125)!important;border-radius: 5px; background-color: rgba(227, 230, 230, 0.226);box-shadow: rgb(99 99 99 / 20%) 0px 2px 8px 0px;cursor: pointer;" con.appendChild(l); } }); let ret=document.getElementById('Ret'); // جلب العنصر الحاوي لعناصر الصفحة let list = document.getElementById("Diseases"); ret.addEventListener('click',function(){ // As long as <ul> has a child node, remove it while (list.hasChildNodes()) { list.removeChild(list.firstChild); } ipcRenderer.send('retour'); });
  10. ماهي كيفية التنقل بين الصفحات في نفس النافذة مثل المواقع والتطبيقات بدون اللجوء إلى إستعمال react في electron??
  11. وجدت الحل وهو في استعمال الدالة setTimeouet بهذا الشكل ipcMain.on('openmaladie-page', function(e,data,NamePath){ setTimeout(()=>{ win.webContents.send('data-Maladie', data,NamePath); },500); creatWindow('maladie.html'); }); لكن المشكل أنني لم أفهم لماذا أستعمل الدالة setTime هنا علما أنني الدالة win.webContents.send في نفس الملف سابقا وتم إرسال البيانات بشكل صحيح ثانيا المشكل في setTimouet أن البيانات أصبحت تعرض لي على حسب الجهاز إذا كان الجهاز ضعيف يكون بطئ في عرض البيانات جربت إستعمال promise بهذا الشكل لم يتم عرض البيانات ! ipcMain.on('openmaladie-page', async function(e,data,NamePath){ await win.webContents.send('data-Maladie', data,NamePath); creatWindow('maladie.html'); });
  12. لايتم طباعة أي شئ داخل هذه الدالة ولا تنفذ أي تعليمة لا أعرف ما السبب ؟
  13. البيانات التي أريد أن أعرضها هي على شكل مصفوفة أمراض , وعند الضغط على إسم المصفوفة في صفحة التخصصات تفتح الصفحة الخاصة بعرض الامراض الخاصة بهذا التخصص ملف index.js let maladie=document.querySelectorAll('ul li'); maladie.forEach(function(el){ el.addEventListener('click',function(e){ let des= PathData.filter(function(ele){ if(ele.name===el.innerText){ return ele; } }); let dataMaladie=des[0].Diseases; ipcRenderer.send('openmaladie-page',dataMaladie); e.preventDefault(); }); }); dataMaldie هو مصفوفة فيها جميع الامراض الخاصة بالتخصص المضغوط عليه وهي تعرض بشكل صحيح ملف Main.js // إستقبال الامراض الخاصة بكل تخصص ipcMain.on('openmaladie-page',function(e,data){ // إرسالها إلى الامراض console.log(data); win.webContents.send("dataMaladie",data); //فتح صفحة الامراض creatWindow('maladie.html'); }); ملف maladie.js الخاص بالامراض const {ipcRenderer} =require('electron'); ipcRenderer.on('dataMaladie',function(e,data){ console.log(data); let con=document.querySelector('#Diseases'); for(let i=0; i<data.length;i++){ let li=` <li class="col-3 patho "> <a href="#"> <span class="ml-4 ">${data[i]}<span> </a> </li>`; con.append(li); } }); هنا بعد ما أستقبل الامراض الموجودة في المصفوفة واحقنها في الصفحة ثم أعرض الصفحة لايحدث أي تغيير في صفحة html الخاصة بالامراض إضافة إلى عدم طباعة أي شئ في الكونسول !! maladie.html صفحة الامراض المراد عرضها <div class="container-fluid "> <button class="btn btn-primary retour"> <a href="./path.html" >RETOUR</a> </button> <ul id="Diseases" class="row d-flex "> <li class="col-3 patho "> <a href="#"> <span class="ml-4 ">Disease name<span> </a> </li> </ul> </div> </div> <!-- نهاية العمليات الرئيسية --> </div> <script src="maladie.js"></script>
  14. حسنا عملت دالتين في ملف js وضمنت كل دالة في صفحة html الخاصة بها كما وضحت لي لكن يخرج لي أن الدالتين غير معرفتين!!!
  15. نعم قمت بتضمين الملف على كلتا الصفحتين ثانيا لا أريد أن تعمل كامل الشيفرة على الصفحتين أي يوجد اختلاف
  16. أريد أن أعمل على ملف js واحد على صفحتين html لكن ألاحظ أنه يعمل على صفحة html واحدة ؟؟؟
  17. عندما أستعمل append يتم حقن العنصر في صفحة html لكن عندما أستعمل appendChild d يظهر خطأ Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. ملف js ipcRenderer.on('AddName-AndAge',function(e,item){ let Age=item[1]; let name=item[0]; window.localStorage.setItem('name',name); window.localStorage.setItem('Age',Age); let AgeMaladie=document.createTextNode(Age); let nameMaladie=document.createTextNode(name); let infoMal=`Nom de Maladie :${name} Age de Maladie :${Age}`; let maladieInfo=document.querySelector('#Maladie-info'); let z=document.createElement('p'); z.appendChild(infoMal); maladieInfo.appendChild(z); }); html <div class="maladie-side clearfix"> <button type="button" id="ajouter" class="btn btn-primary py-2 ajouter float-left"> Ajouter un maladie <!-- <a href="./maladieData.html"> </a> --> </button> <span id="Maladie-info" class="Maladie_Info text-left "> </span> </div>
  18. بحثت عن أين تخزن electron قاعدة البيانات على الجهاز فتتبعت المسار المذكور في عملية البحث لكني لم أجد الملف ؟ الهدف من إيجادي للملف هو أن مشروعي يتطلب قاعدة بيانات ثابتة لكل المستخدمين وأنا أريد هذا الملف لكي أنسخه في جهاز أي مستخدم يستعمل التطبيق هل هذه الفكرة صائبة ؟ هل هناك فكرة أخرى علما أن التطبيق يعمل بدون إنترنت
  19. const electron = require('electron'); const {app, BrowserWindow,ipcMain,dialog}= require('electron'); const { event } = require('jquery'); function creatWindow(){ const win= new BrowserWindow({ width:1100, heigt:1400, webPreferences:{ nodeIntegration:true, contextIsolation: false, } }); win.loadFile('index.html'); } function creatnewWin(){ const wind= new BrowserWindow({ width:1100, heigt:1400, webPreferences:{ nodeIntegration:true, contextIsolation: false, } }); wind.loadFile('maladieData.html'); } app.on('ready',creatWindow); ipcMain.on("open-newWindow",function(event,arg){ console.log('cliked'); app.on('ready',creatnewWin); }); main.js const {ipcRenderer} =require('electron'); let $ = require('jquery'); $('.list-group-item').on('click',function(e){ ipcRenderer.send("open-newWindow","open Window"); e.preventDefault(); }) View.js عندما أضغط على الزر يتم طبعة الرسالة في consol لكن لماذا لايتم فتح الناف الجديدة ؟
  20. في إحدى دروس الجافا سكريبت على اليوتيوب سمعت المدرس يقول في مثل هذه الحالة setTimeout(()=>{ console.log("web api"); },0); function one(){ console.log("one"); } one(); أن call Stack يترك Web API methode لل browser لكي يتعامل معها أي في هذه الحالة تطبع one ثم web api ما معنى هذا الكلام ؟ هل كل تعليمة في الجاف سكريبت تنفذ قبل تعليمات web API methode ?
  21. لو عندي تطبيق لعرض نتائج مباريات اليوم مثلا كيف يتم تلقائيا جلب النتائج بشكل محدث يوميا من على موقع الفيفا أو موقع يحتوي على النتائج ؟ كيف توفر هذه المواقع النتائج لكي أستطيع أنا أستعرضها في تطبيقي؟ بشكل عام كيف تتم مشاركة البيانات عبر المواقع والتطبيقات عن طريق الواجهة البرمجية API
  22. هل Call Stack يخزن فقط الدوال ؟ أو كل تعليمة تدخل فيه؟ هل Call Stack عبارة عن مخزن في لغة الجافا سكريبت ؟ وماهو عمله بالضبط؟
  23. طبقت هذه العملية لكن المشكلة أنها لاتتم بطريقة صحيحة إلا بعد تحميلي للصفحة بعد كل مرة if( !v || v.length === 0){ console.log("tasks not found"); }else{ let newarr= v.split(','); console.log(newarr); for(let i=0; i<newarr.length;i++){ i.toString(); let del=document.getElementById(`${i}`); del.addEventListener('click',function(){ let de=document.getElementById(`${i}`); let myd=document.getElementById(`my-div${i}`); let va=newarr.splice(i,1); removeTask(va.join('')); myd.remove(); de.remove(); }); } }
  24. هاهي دالة الحذف لدي if( !v || v.length === 0){ console.log("tasks not found"); }else{ let newarr= v.split(','); console.log(newarr); for(let i=0; i<newarr.length;i++){ i.toString(); let del=document.getElementById(`${i}`); del.addEventListener('click',function(){ let de=document.getElementById(`${i}`); console.log(newarr); // let va=newarr.splice(i,1); let spliced= newarr.splice(i,1); // console.log(va); console.log(spliced); window.localStorage.setItem("value",v); console.log(v); let myd=document.getElementById(`my-div${i}`); myd.remove(); de.remove(); }) v=newarr; } } وهي تحذف بطريقة صحيحة لكن يلزمني تحيل الصفحة بعد ان احذف كل عنصر وحيد . في أي مكان أطبق دالة الحذف التي اقترحتها علي اعلاه بحيث أن أحذف العنصر سواءا بعد إضافته مباشرة أو بعد الاضافة وتحميل الصفحة ومن ثم حذفه ؟
×
×
  • أضف...