645645

 
Chat

Ask me anything

Ithy Logo

اكتشف مفتاحك الذهبي لفرصة عمل أحلامك: دليلك الشامل لسيرة ذاتية احترافية وبحث وظيفي فعال

تعلم كيف تبرز في سوق العمل التنافسي من خلال سيرة ذاتية لا تُنسى واستراتيجيات بحث ذكية.

job-search-professional-cv-qck9sa87

logo-black-tiny.png
45+ Sources

أبرز النقاط الجوهرية

  • السيرة الذاتية المخصصة والمتوافقة مع ATS: يجب أن تكون سيرتك الذاتية مصممة خصيصًا لكل وظيفة تتقدم إليها، مع التركيز على الكلمات المفتاحية ذات الصلة لضمان تجاوز أنظمة تتبع المتقدمين (ATS).
  • التركيز على الإنجازات القابلة للقياس: بدلاً من مجرد سرد المهام، ركز على إبراز الإنجازات الملموسة والقابلة للقياس التي حققتها في أدوارك السابقة.
  • استغلال منصات التوظيف وشبكات التواصل المهني: استخدم مجموعة متنوعة من المصادر للبحث عن عمل، بما في ذلك المنصات الإلكترونية، ومواقع الشركات، وشبكة LinkedIn لبناء العلاقات المهنية.

في عالم اليوم التنافسي، يعد البحث عن فرصة عمل مميزة وتجهيز سيرة ذاتية احترافية خطوتين أساسيتين لتحقيق النجاح المهني. تتطلب هذه العملية مزيجًا من الاستراتيجية، والدقة، والتخصيص لضمان أن تبرز بين المتقدمين الآخرين. سيقدم لك هذا الدليل الشامل رؤى عملية ونصائح قابلة للتطبيق لمساعدتك في صياغة سيرة ذاتية مؤثرة واكتشاف أفضل فرص العمل.


بناء سيرة ذاتية احترافية: جواز سفرك إلى عالم الفرص

السيرة الذاتية (CV) ليست مجرد قائمة بالخبرات؛ إنها وثيقة تسويقية شخصية تهدف إلى تسليط الضوء على نقاط قوتك، ومهاراتك، وإنجازاتك. يجب أن تكون مصممة بعناية لتجذب انتباه أصحاب العمل وتجتاز أنظمة الفرز الآلية (ATS).

تصميم السيرة الذاتية: الانطباع الأول يدوم

اختيار القالب المناسب

يعد اختيار قالب السيرة الذاتية الصحيح خطوة حاسمة. يجب أن يكون القالب احترافيًا، منظمًا، وسهل القراءة. توفر منصات مثل Canva وStylingCV وBestFreeCV مجموعة واسعة من القوالب المجانية التي يمكن تخصيصها لتناسب احتياجاتك. من المهم جدًا اختيار قالب متوافق مع أنظمة ATS، حيث أن العديد من الشركات الكبيرة تستخدم هذه الأنظمة لفرز السير الذاتية تلقائيًا.

صورة توضيحية لعملية المقابلة الشخصية

صورة توضيحية للمظهر العام الاحترافي الذي يجب أن تعكسه السيرة الذاتية.

التنسيق والوضوح

يجب أن تكون سيرتك الذاتية موجزة، وواضحة، وخالية من الأخطاء الإملائية واللغوية. يفضل أن تكون صفحة واحدة للمتقدمين حديثي التخرج أو ذوي الخبرة القليلة، ولا تزيد عن صفحتين كحد أقصى لذوي الخبرة الواسعة. استخدم خطوطًا سهلة القراءة وألوانًا هادئة. تنظيم الأقسام بشكل منطقي يسهل على مسؤول التوظيف استعراضها بسرعة.

المحتوى الجوهري: ما يجب أن تضمه سيرتك الذاتية

المعلومات الأساسية والملخص الاحترافي

ابدأ بمعلومات الاتصال المحدثة (الاسم، رقم الهاتف، البريد الإلكتروني، رابط ملف LinkedIn الشخصي). يتبع ذلك الملخص المهني، وهو فقرة موجزة تسلط الضوء على أبرز مهاراتك وخبراتك وأهدافك المهنية، مع تخصيصه للوظيفة المستهدفة.

الخبرات المهنية والإنجازات

بدلاً من مجرد سرد المهام الوظيفية، ركز على الإنجازات القابلة للقياس التي حققتها في كل دور. استخدم الأفعال القوية والأرقام لدعم إنجازاتك. على سبيل المثال، بدلاً من "إدارة فريق المبيعات"، يمكنك كتابة "قيادة فريق مبيعات مكون من 10 أفراد، مما أدى إلى زيادة المبيعات بنسبة 20% خلال عام واحد".

التعليم والدورات التدريبية

اذكر مؤهلاتك الأكاديمية بترتيب زمني عكسي، بدءًا من الأحدث. قم بتضمين أي دورات تدريبية أو شهادات ذات صلة بالوظيفة التي تتقدم إليها، حيث تعكس هذه الجهود التزامك بالتطوير المستمر.

المهارات: تميزك عن الآخرين

قسم المهارات إلى مهارات صعبة (Hard Skills) مثل البرمجة، تحليل البيانات، أو اللغات الأجنبية، ومهارات ناعمة (Soft Skills) مثل التواصل، القيادة، حل المشكلات، والعمل الجماعي. استخدم الكلمات المفتاحية الموجودة في وصف الوظيفة لجعل سيرتك الذاتية أكثر توافقًا مع أنظمة ATS.

يوضح هذا الرسم البياني بالرادار أهمية مختلف عناصر السيرة الذاتية على مقياس من 0 إلى 5، حيث تظهر أهمية التخصيص للوظيفة وتضمين الإنجازات والتوافق مع أنظمة ATS كعوامل حاسمة في زيادة فرص القبول.


البحث عن فرصة عمل مميزة: استراتيجيات فعالة

بمجرد تجهيز سيرتك الذاتية الاحترافية، حان وقت البدء في البحث عن الفرص المناسبة. يتطلب البحث الوظيفي الناجح نهجًا متعدد الأوجه.

منصات التوظيف الإلكترونية

استخدام المنصات الموثوقة

تعد منصات التوظيف الإلكترونية بوابتك للوصول إلى آلاف الفرص. من بين المواقع الموثوقة في منطقة الشرق الأوسط وشمال أفريقيا: Bayt.com، Naukrigulf، Tanqeeb، وSabbar. قم بإنشاء ملفات شخصية كاملة ومحدثة على هذه المنصات، وقم بتفعيل التنبيهات للوظائف التي تتناسب مع مجالك واهتماماتك.

مجموعة أشخاص يتفاعلون في بيئة مهنية

صورة توضيحية لأهمية التواصل والتفاعل في البحث عن العمل.

التواصل عبر شبكات التواصل المهني (LinkedIn)

LinkedIn هي أداة لا غنى عنها للبحث عن عمل وبناء العلاقات المهنية. قم بتحسين ملفك الشخصي ليعكس سيرتك الذاتية، وتفاعل مع المحتوى ذي الصلة بمجالك، وتواصل مع مسؤولي التوظيف والمهنيين في الشركات التي تثير اهتمامك. غالبًا ما يتم الإعلان عن الوظائف الشاغرة على LinkedIn قبل أن تصل إلى منصات أخرى.

متابعة الشركات المستهدفة

زيارة مواقع الشركات الرسمية

بالإضافة إلى منصات التوظيف العامة، قم بزيارة المواقع الإلكترونية للشركات التي تود الانضمام إليها. العديد من الشركات تنشر فرص العمل الشاغرة مباشرة على مواقعها قبل الإعلان عنها في أي مكان آخر.

معارض التوظيف ووكالات التوظيف

تشارك في معارض التوظيف المحلية والعالمية، حيث يمكنك مقابلة ممثلي الشركات مباشرة وتقديم سيرتك الذاتية. كما أن وكالات التوظيف المتخصصة يمكن أن توفر لك فرصًا حصرية قد لا تجدها في أماكن أخرى.


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

لزيادة فرصك في الحصول على وظيفة مميزة، يجب أن تكون على دراية بالوظائف الأكثر طلبًا في السوق والمهارات اللازمة لها. على سبيل المثال، وظائف مثل محلل الأمن السيبراني، مهندس مبيعات، ومطور البيانات، تُعد من بين الوظائف المطلوبة بشدة في أسواق مثل مصر لعام 2025.

يستعرض هذا الرسم البياني بالعمود التقدير العام للطلب على أنواع مختلفة من الوظائف في عام 2025 على مقياس من 0 إلى 10، مع تسليط الضوء على القطاعات التي تشهد نموًا كبيرًا.


نصائح إضافية لتعزيز فرصك

إلى جانب السيرة الذاتية الفعالة والبحث المتقن، هناك جوانب أخرى يمكن أن تعزز من فرصك في الحصول على الوظيفة التي تتمناها.

أهمية التدريب المستمر

في سوق العمل المتغير باستمرار، يعد التعلم والتطوير المستمر أمرًا بالغ الأهمية. احرص على اكتساب مهارات جديدة من خلال الدورات التدريبية وورش العمل، خاصة تلك المتعلقة بالمهارات الرقمية والتقنيات الحديثة. هذا لا يجعلك مرشحًا أكثر جاذبية فحسب، بل يجهزك أيضًا للتحديات المستقبلية.

التحضير للمقابلة الشخصية

السيرة الذاتية تفتح لك الباب، ولكن المقابلة الشخصية هي التي تؤمن لك الوظيفة. استعد جيدًا للمقابلات من خلال البحث عن الشركة، فهم ثقافة العمل، ومراجعة الأسئلة الشائعة في المقابلات. تدرب على الإجابات الواضحة والموجزة، وحاول ربط إجاباتك بخبراتك وإنجازاتك.

بناء العلامة التجارية الشخصية

تساعد العلامة التجارية الشخصية في إبراز هويتك المهنية. يمكن تحقيق ذلك من خلال إنشاء محفظة أعمال (Portfolio) تعرض مشاريعك وإنجازاتك، أو من خلال كتابة مقالات في مجالك، أو حتى المشاركة في فعاليات الصناعة. هذه الأنشطة تظهر شغفك والتزامك بمجال عملك.

mindmap root["استراتيجية البحث عن عمل"] cv_creation["بناء السيرة الذاتية"] ats_friendly["قوالب متوافقة مع ATS"] achievements["التركيز على الإنجازات"] tailoring["تخصيص للوظيفة"] job_search["البحث عن الفرص"] online_platforms["منصات التوظيف الإلكترونية"] linkedin_networking["شبكات التواصل المهني (LinkedIn)"] company_websites["مواقع الشركات"] skill_development["تطوير المهارات"] continuous_learning["التعلم المستمر"] in_demand_skills["المهارات المطلوبة"] interview_prep["التحضير للمقابلة"] research_company["البحث عن الشركة"] common_questions["أسئلة المقابلة الشائعة"]

يوضح هذا المخطط الذهني العناصر الرئيسية لاستراتيجية البحث عن عمل، بدءًا من بناء السيرة الذاتية الفعالة، مروراً بأساليب البحث المتنوعة، وصولاً إلى تطوير المهارات والتحضير للمقابلات، مما يوفر رؤية شاملة للعملية.


ملخص لأهم الأدوات والمصادر

تتوفر العديد من الأدوات والمصادر التي يمكن أن تساعدك في رحلة البحث عن عمل وإعداد سيرة ذاتية احترافية. إليك جدول يوضح أبرزها:

الفئةالأداة/المصدرالوصف
تصميم السيرة الذاتيةCanvaأدوات تصميم سهلة الاستخدام مع قوالب احترافية ومتوافقة مع ATS.
تصميم السيرة الذاتيةStylingCVنماذج سيرة ذاتية جاهزة باللغتين العربية والإنجليزية، متوافقة مع ATS.
تصميم السيرة الذاتيةGetYourCVيوفر أكثر من 60 نموذج سيرة ذاتية بصيغة Word جاهزة للتعبئة.
منصات التوظيفBayt.comأكبر موقع توظيف في الشرق الأوسط، يوفر فرص عمل متنوعة.
منصات التوظيفLinkedInشبكة تواصل مهني عالمية للبحث عن وظائف وبناء العلاقات.
منصات التوظيفSabbar.comمنصة توظيف تعتمد على الذكاء الاصطناعي، خاصة في منطقة الخليج.
نصائح مهنيةCVwizardنصائح عملية لإنشاء سيرة ذاتية ناجحة واستراتيجيات الخبراء.

هذا الفيديو يقدم رؤى قيمة حول كيفية صياغة سيرة ذاتية يمكن أن تجعلك مرشحًا جذابًا لأصحاب العمل:

فيديو يشرح بالتفصيل كيفية عمل السيرة الذاتية الاحترافية.


الأسئلة الشائعة

ما هو نظام ATS ولماذا هو مهم لسيرتي الذاتية؟
نظام ATS (Applicant Tracking System) هو برنامج يستخدمه أصحاب العمل لفرز السير الذاتية تلقائيًا بناءً على الكلمات المفتاحية والمعايير المحددة. من المهم جدًا تصميم سيرتك الذاتية لتكون متوافقة مع ATS لضمان عدم استبعادها قبل أن يراها أي شخص.
كم يجب أن يكون طول السيرة الذاتية؟
عادةً ما يُنصح بأن تكون السيرة الذاتية صفحة واحدة للمتقدمين حديثي التخرج أو ذوي الخبرة الأقل من 10 سنوات، وصفحتين كحد أقصى لذوي الخبرة الواسعة. الهدف هو الإيجاز والتركيز على المعلومات الأكثر أهمية.
هل يجب أن أستخدم نفس السيرة الذاتية لكل وظيفة أتقدم إليها؟
لا، يُنصح بشدة بتخصيص سيرتك الذاتية لكل وظيفة تتقدم إليها. قم بتعديل الملخص المهني، والمهارات، والإنجازات لتتناسب مع متطلبات الوظيفة المحددة المذكورة في الإعلان.
ما هي أهم الأقسام التي يجب أن تتضمنها السيرة الذاتية؟
يجب أن تتضمن السيرة الذاتية أقسامًا للمعلومات الشخصية والاتصال، الملخص المهني، الخبرات المهنية، التعليم، والمهارات. يمكن إضافة أقسام اختيارية مثل الدورات التدريبية، الجوائز، والعمل التطوعي إذا كانت ذات صلة.
كيف أجد الوظائف الأكثر طلبًا في مجالي؟
يمكنك البحث عن الوظائف الأكثر طلبًا من خلال تقارير سوق العمل، وتحليلات الصناعة، ومراقبة إعلانات الوظائف على المنصات الكبرى مثل LinkedIn. كما يمكن أن تساعدك أدوات تحليل المهارات والوظائف في تحديد الفجوات في مهاراتك.

الخاتمة

إن البحث عن فرصة عمل مميزة وإعداد سيرة ذاتية احترافية هي رحلة تتطلب التخطيط، والمرونة، والتعلم المستمر. من خلال تطبيق النصائح والاستراتيجيات المذكورة في هذا الدليل، ستكون مجهزًا بشكل أفضل للتنقل في سوق العمل وتحقيق أهدافك المهنية. تذكر أن سيرتك الذاتية هي أول انطباع تتركه، فاجعلها قوية ومؤثرة، واستخدم جميع الأدوات المتاحة لزيادة فرصك في النجاح.


استكشف المزيد


النتائج البحثية المرجعية

arabic.naukrigulf.com

Naukrigulf 

 

Download Article
Delete Article

 

`, icon: 'question', confirmButtonColor: '#388278', confirmButtonText: `Ask AI`, showConfirmButton: true, showCancelButton: true, cancelButtonText: 'Close', backdrop: 'rgba(0, 0, 0, 0.8)', background: '#dddddd', customClass: { popup: 'swal2-modern', title: 'swal2-title-modern' } }).then((result) => { if (result.isConfirmed) { window.open('/', "_self"); } localStorage.setItem('previousUser', 'true'); }); }; const outer = document.querySelector('.outer'); const content = outer.textContent; const isRTL = detectRTL(content); if (isRTL) { outer.classList.add('rtl-support'); outer.setAttribute('dir', 'rtl'); } window.addEventListener('scroll', updateProgressBar); window.addEventListener('resize', updateProgressBar); updateProgressBar(); const askTranslations = { "en": "Ask me anything", "zh": "问我任何问题", "es": "Pregúntame", "ar": "اسألني أي شيء", "hi": "पूछें", "pt": "Pergunte-me", "de": "Frag mich", "fr": "Demandez-moi", "ja": "何でも聞いて", "ru": "Спроси меня", "id": "Tanyakan", "ko": "물어보세요", "it": "Chiedimi tutto", "tr": "Sor bana", "pl": "Zapytaj mnie", "vi": "Hãy hỏi tôi", "fa": "بپرس", "nl": "Vraag me alles", "th": "ถามได้", "he": "שאל אותי" }; userLang = (navigator.language || navigator.userLanguage || "en").substr(0,2).toLowerCase(); const searchText = document.getElementById('search-text'); if (searchText) { searchText.textContent = askTranslations[userLang] || askTranslations["en"]; } setTimeout(() => { if (!localStorage.getItem('session') && !localStorage.getItem("previousUser")) { const helpButton = document.querySelector('.help-icon'); if (helpButton) { helpButton.click(); } } }, 30000); $.fn.dataTable.ext.errMode = 'none'; const tables = document.querySelectorAll('table'); tables.forEach(table => { if (!table.querySelector('thead')) { const firstRow = table.querySelector('tr'); const thead = document.createElement('thead'); thead.appendChild(firstRow); table.insertBefore(thead, table.firstChild); } new DataTable(table, { responsive: true, paging: false, searching: false, info: false, order: [] }); }); currentUrl = window.location.pathname; articleId = currentUrl.split('/').pop(); const exportBox = document.querySelector('.export-box'); if (exportBox) exportBox.style.display = 'flex'; fetch(`/is_owner?full_url=${articleId}`) .then(response => response.json()) .then(data => { if (data.is_user) { const askMoreBox = document.getElementById('ask-ithy'); if (askMoreBox) askMoreBox.style.display = 'none'; } if (data.is_owner) { const deleteBox = document.querySelector('.delete-box'); if (deleteBox) deleteBox.style.display = 'flex'; } if (data.chat_provider) { localStorage.setItem('chat_provider', data.chat_provider); askAgainButton = document.querySelector('.ask-again-button'); if (askAgainButton) { askAgainButton.style.display = 'flex'; chatProvider = localStorage.getItem('chat_provider') || 'Perplexity'; document.getElementById('chat-provider-name').textContent = chatProvider === 'Perplexity' ? 'Chat' : chatProvider; } } }) .catch(error => { console.error('Error checking ownership:', error); const deleteBox = document.querySelector('.delete-box'); const exportBox = document.querySelector('.export-box'); askAgainButton = document.querySelector('.ask-again-button'); if (deleteBox) deleteBox.style.display = 'none'; if (exportBox) exportBox.style.display = 'none'; if (askAgainButton) askAgainButton.style.display = 'none'; }); if (document.querySelector('.rtl-support')) { document.querySelectorAll('.fa-arrow-right').forEach(arrow => { arrow.classList.remove('fa-arrow-right'); arrow.classList.add('fa-arrow-left'); }); } }); function confirmDelete() { if (confirm('Permanently delete this article?')) { currentUrl = window.location.pathname; articleId = currentUrl.split('/').pop(); fetch('/delete_article?full_url=' + articleId, { method: 'GET', headers: { 'Content-Type': 'application/json', } }) .then(response => { if (response.ok) { window.location.href = '/account'; } else { alert('Failed to delete article'); } }) .catch(error => { alert('Failed to delete article'); }); } } function askAgain() { currentUrl = window.location.href; const prompt = `Intelligently analyze this article, then provide additional insights: ${currentUrl}`; const encodedPrompt = encodeURIComponent(prompt); let chatUrl; chatProvider = localStorage.getItem('chat_provider') || 'Perplexity'; const chatProviderElement = document.getElementById('chat-provider-name'); if (chatProviderElement) { chatProviderElement.textContent = chatProvider === 'Perplexity' ? 'Chat' : chatProvider; } switch(chatProvider) { case 'Perplexity': chatUrl = `https://perplexity.ai/search?q=${encodedPrompt}`; break; case 'iAsk': chatUrl = `https://iask.ai/?q=${encodedPrompt}`; break; case 'Felo': chatUrl = `https://felo.ai/search?q=${encodedPrompt}`; break; case 'Ithy': chatUrl = `https://ithy.com?query=${encodedPrompt}`; break; case 'Kagi': chatUrl = `https://kagi.com/assistant?internet=on&q=${encodedPrompt}`; break; case 'Mistral': chatUrl = `https://chat.mistral.ai/chat?q=${encodedPrompt}`; break; case 'ChatGPT': default: chatUrl = `https://chatgpt.com/?hints=search&q=${encodedPrompt}`; break; } window.open(chatUrl, '_blank'); } function exportArticle() { currentUrl = window.location.pathname; articleId = currentUrl.split('/').pop(); const markdownUrl = `${currentUrl}?md=true`; const pdfUrl = `${currentUrl}?pdf=true`; const htmlUrl = `${currentUrl}?raw=true`; fetch(markdownUrl) .then(response => response.text()) .then(markdownText => { Swal.fire({ icon: 'success', html: `
Try "Print" for better PDFs
`, showConfirmButton: false, showCloseButton: true, backdrop: 'rgba(0, 0, 0, 0.8)', customClass: { popup: 'swal2-modern', title: 'swal2-title-modern' }, didOpen: () => { document.getElementById('copyMarkdownBtn').addEventListener('click', () => { navigator.clipboard.writeText(markdownText).then(() => { Swal.fire({ icon: 'success', title: 'Copied!', text: 'Markdown text copied to clipboard', timer: 3000, showConfirmButton: false, confirmButtonColor: '#388278', backdrop: 'rgba(0, 0, 0, 0.8)', customClass: { popup: 'swal2-modern', title: 'swal2-title-modern' } }); }).catch(err => { console.error('Failed to copy text: ', err); Swal.fire({ icon: 'error', title: 'Error', text: 'Failed to copy to clipboard', confirmButtonColor: '#388278', backdrop: 'rgba(0, 0, 0, 0.8)', customClass: { popup: 'swal2-modern', title: 'swal2-title-modern' } }); }); }); document.getElementById('downloadPdfBtn').addEventListener('click', async () => { if (detectRTL(document.body.innerText)) { window.open(htmlUrl, '_blank'); return; } try { const pdfResponse = await fetch(pdfUrl); const pdfBlob = await pdfResponse.blob(); const contentDisposition = pdfResponse.headers.get('Content-Disposition'); let filename = 'document.pdf'; if (contentDisposition) { const filenameStarMatch = contentDisposition.match(/filename\*=UTF-8''([^;]+)/i); if (filenameStarMatch && filenameStarMatch[1]) { filename = decodeURIComponent(filenameStarMatch[1]); } else { const filenameMatch = contentDisposition.match(/filename="(.+)"/); if (filenameMatch && filenameMatch[1]) { filename = filenameMatch[1]; } } } if ('showSaveFilePicker' in window) { try { const fileHandle = await window.showSaveFilePicker({ suggestedName: filename, types: [{ description: 'PDF Files', accept: {'application/pdf': ['.pdf']} }] }); const writable = await fileHandle.createWritable(); await writable.write(pdfBlob); await writable.close(); } catch (err) { if (err.name !== 'AbortError') { console.error('File System Access API error:', err); fallbackDownload(pdfUrl, filename); } } } else { fallbackDownload(pdfUrl, filename); } } catch (error) { console.error('Error downloading PDF:', error); Swal.fire({ icon: 'error', title: 'Error', text: 'Failed to download PDF.', confirmButtonColor: '#388278' }); } }); document.getElementById('downloadHtmlBtn').addEventListener('click', async () => { try { const htmlResponse = await fetch(htmlUrl); const htmlBlob = await htmlResponse.blob(); const contentDisposition = htmlResponse.headers.get('Content-Disposition'); let filename = articleId + ".html" if ('showSaveFilePicker' in window) { try { const fileHandle = await window.showSaveFilePicker({ suggestedName: filename, types: [{ description: 'HTML Files', accept: {'text/html': ['.html', '.htm']} }] }); const writable = await fileHandle.createWritable(); await writable.write(htmlBlob); await writable.close(); } catch (err) { if (err.name !== 'AbortError') { console.error('File System Access API error:', err); fallbackDownload(htmlUrl, filename, true); } } } else { fallbackDownload(htmlUrl, filename, true); } } catch (error) { console.error('Error downloading HTML:', error); Swal.fire({ icon: 'error', title: 'Error', text: 'Failed to download HTML.', confirmButtonColor: '#388278' }); } }); document.getElementById('printBtn').addEventListener('click', () => { window.open(htmlUrl, '_blank'); }); } }); }) .catch(error => { console.error('Error fetching Markdown content:', error); Swal.fire({ icon: 'error', title: 'Error', text: 'Failed to fetch article content.', confirmButtonColor: '#388278', backdrop: 'rgba(0, 0, 0, 0.8)', customClass: { popup: 'swal2-modern', title: 'swal2-title-modern' } }); }); } function fallbackDownload(url, filename, isHtml = false) { const a = document.createElement('a'); a.href = url; a.download = filename; if (isHtml) { fetch(url) .then(response => response.blob()) .then(blob => { const blobUrl = window.URL.createObjectURL(blob); a.href = blobUrl; document.body.appendChild(a); a.click(); document.body.removeChild(a); window.URL.revokeObjectURL(blobUrl); }) .catch(err => console.error('Fallback HTML download fetch error:', err)); } else { document.body.appendChild(a); a.click(); document.body.removeChild(a); } } function copyToClipboard(text) { navigator.clipboard.writeText(text).then(() => { alert("Article URL copied to clipboard"); }).catch(err => { console.error('Failed to copy text: ', err); }); }
Your experience on this site will be improved by allowing cookies. سياسة الخصوصية