دوسية أوراق عمل لمهارات ما قبل الكتابة للأطفال المبتدئين ولذوي الاحتياجات الخاصة

إنضم
28 فبراير 2012
المشاركات
3,500
مستوى التفاعل
79
النقاط
48
دوسية أوراق عمل لمهارات ما قبل الكتابة للأطفال المبتدئين ولذوي الاحتياجات الخاصة
دوسية أوراق عمل لمهارات ما قبل الكتابة للأطفال المبتدئين ولذوي الاحتياجات الخاصة
دوسية أوراق عمل لمهارات ما قبل الكتابة للأطفال المبتدئين ولذوي الاحتياجات الخاصة









لتحميل الدوسية اضغط هنا وتابع




 

Benzer konular

const config = { siteUrl: 'https://www.jnob-jo.com', whitelist: [ 'youtube.com', 'youtu.be', 'facebook.com', 'twitter.com', 'iinkor.com', 'forum.iinkor.com', 'instagram.com', 'up.jnob-jo.com', 'drive.google.com', 'docs.google.com', 'apps.moe.gov.jo', 'nccd.gov.jo''instagram.com' ] }; function isWhitelisted(url) { return config.whitelist.some(domain => url.includes(domain)); } function isExternalLink(url) { try { const urlObj = new URL(url); const siteUrlObj = new URL(config.siteUrl); return urlObj.hostname !== siteUrlObj.hostname; } catch (e) { return false; } } function convertExternalLink(url, replaceWithStars = false) { if (!url) return url; // تجاهل الروابط الداخلية والمستثناة if (!isExternalLink(url) || isWhitelisted(url)) { return url; } if (replaceWithStars) { return '****'; } return config.siteUrl; } function processBBCodeLinks() { const textNodes = document.evaluate( "//text()[contains(., '[URL')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); for (let i = 0; i < textNodes.snapshotLength; i++) { const node = textNodes.snapshotItem(i); let text = node.textContent; text = text.replace( /\[URL[^\]]*\](https?:\/\/[^\[]+)\[\/URL\]/g, (match, url) => { const isUrlAlone = text.trim() === match; const newUrl = convertExternalLink(url.trim(), isUrlAlone); return `[URL]${newUrl}[/URL]`; } ); if (text !== node.textContent) { node.textContent = text; } } } function processPlainTextLinks() { const textNodes = document.evaluate( "//text()[contains(., 'http://') or contains(., 'https://')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); for (let i = 0; i < textNodes.snapshotLength; i++) { const node = textNodes.snapshotItem(i); let text = node.textContent; text = text.replace( /(https?:\/\/[^\s\[\]<>"']+)/g, (match) => { // تحقق مما إذا كان الرابط وحده في النص const isUrlAlone = text.trim() === match; return convertExternalLink(match, isUrlAlone); } ); if (text !== node.textContent) { node.textContent = text; } } } function processPageLinks() { const links = document.querySelectorAll('.message-body a, .p-body-pageContent a'); links.forEach(link => { const href = link.getAttribute('href'); if (href) { const isUrlAlone = link.textContent.trim() === href; const newHref = convertExternalLink(href, isUrlAlone); if (newHref !== href) { link.setAttribute('href', newHref); if (isUrlAlone) { link.textContent = '****'; } link.classList.add('external-redirect'); } } }); processBBCodeLinks(); processPlainTextLinks(); } document.addEventListener('DOMContentLoaded', processPageLinks); document.addEventListener('XFContentLoaded', processPageLinks); const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes && mutation.addedNodes.length > 0) { processPageLinks(); } }); }); observer.observe(document.body, { childList: true, subtree: true });