-
المساهمات
394 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
4
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mohamed Lamin Mahmoudi
-
مازالت تطبع الصفحة بحجم كبير كيف أخرج نافذة التحديد لكي أحدد من خلالها الحجم ؟ 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'); }); });
-
نفس الشئ مزال يطبع الصفحة فارغة وانا أريده أن يطبعها مملوءة بالبيانات المحقونة فيها من ملف 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
-
عندي وصفة أريد أن أطبعها بدون أن أفتح صفحة 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); } }) المشكل هو أن الوصفة تطبع فارغة ولا تظهر عليها البيانات المدخلة فيها من الذاكرة المحلية ! سابقا كنت أفتح الوصفة لأتاكد من ظهور البيانات فيها وكانت تظهر أما الان أريد ان اطبع الوصفة بدون فتح الصفحة كيف افعل ذلك ؟
-
عندما أضغط على 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'); });
- 2 اجابة
-
- 1
-
وجدت الحل وهو في استعمال الدالة 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'); });
-
البيانات التي أريد أن أعرضها هي على شكل مصفوفة أمراض , وعند الضغط على إسم المصفوفة في صفحة التخصصات تفتح الصفحة الخاصة بعرض الامراض الخاصة بهذا التخصص ملف 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>
-
عندما أستعمل 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>
- 2 اجابة
-
- 2
-
بحثت عن أين تخزن electron قاعدة البيانات على الجهاز فتتبعت المسار المذكور في عملية البحث لكني لم أجد الملف ؟ الهدف من إيجادي للملف هو أن مشروعي يتطلب قاعدة بيانات ثابتة لكل المستخدمين وأنا أريد هذا الملف لكي أنسخه في جهاز أي مستخدم يستعمل التطبيق هل هذه الفكرة صائبة ؟ هل هناك فكرة أخرى علما أن التطبيق يعمل بدون إنترنت
-
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 لكن لماذا لايتم فتح الناف الجديدة ؟
- 1 جواب
-
- 1
-
في إحدى دروس الجافا سكريبت على اليوتيوب سمعت المدرس يقول في مثل هذه الحالة setTimeout(()=>{ console.log("web api"); },0); function one(){ console.log("one"); } one(); أن call Stack يترك Web API methode لل browser لكي يتعامل معها أي في هذه الحالة تطبع one ثم web api ما معنى هذا الكلام ؟ هل كل تعليمة في الجاف سكريبت تنفذ قبل تعليمات web API methode ?
- 1 جواب
-
- 1
-
لو عندي تطبيق لعرض نتائج مباريات اليوم مثلا كيف يتم تلقائيا جلب النتائج بشكل محدث يوميا من على موقع الفيفا أو موقع يحتوي على النتائج ؟ كيف توفر هذه المواقع النتائج لكي أستطيع أنا أستعرضها في تطبيقي؟ بشكل عام كيف تتم مشاركة البيانات عبر المواقع والتطبيقات عن طريق الواجهة البرمجية API
- 1 جواب
-
- 1
-
هل Call Stack يخزن فقط الدوال ؟ أو كل تعليمة تدخل فيه؟ هل Call Stack عبارة عن مخزن في لغة الجافا سكريبت ؟ وماهو عمله بالضبط؟
- 1 جواب
-
- 1
-
طبقت هذه العملية لكن المشكلة أنها لاتتم بطريقة صحيحة إلا بعد تحميلي للصفحة بعد كل مرة 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(); }); } }
-
هاهي دالة الحذف لدي 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; } } وهي تحذف بطريقة صحيحة لكن يلزمني تحيل الصفحة بعد ان احذف كل عنصر وحيد . في أي مكان أطبق دالة الحذف التي اقترحتها علي اعلاه بحيث أن أحذف العنصر سواءا بعد إضافته مباشرة أو بعد الاضافة وتحميل الصفحة ومن ثم حذفه ؟
- 4 اجابة
-
- 1