function replaceOembeds() { var allEmbeds = document.getElementsByTagName("OEMBED");
while (allEmbeds.length != 0) { replaceOembedWithHtml(allEmbeds[0], extractLinkFromOembed(allEmbeds[0])); allEmbeds = document.getElementsByTagName("OEMBED"); }
runYoutubeLazyLoad(); loadfbApi(); }
function replaceOembedWithHtml(element, sourceData) { if (sourceData.source.toLowerCase() === "youtube") { var html="
';
replaceElementWithHtml(element, html); } else if (sourceData.source.toLowerCase() === "instagram") { var html="
';
replaceElementWithHtml(element, html); } else if (sourceData.source.toLowerCase() === "twitter") { var html="
'; replaceElementWithHtml(element, html); } else if (sourceData.source.toLowerCase() === "facebook") { var html="
' replaceElementWithHtml(element, html); } else { replaceElementWithHtml(element, ""); }
}
function extractLinkFromOembed(element) { return getUrlSource(element.getAttribute("url")); }
function getUrlSource(url) { var ytRegex = /http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?[\w\?=]*)?/; var instaRegex = /(https?:\/\/www\.)?instagram\.com(\/p\/(\w+)\/?)/; var twitterRegex = /twitter\.com\/.*\/status(?:es)?\/([^\/\?]+)/; var fbRegex = /^https?:\/\/www\.facebook\.com.*\/(video(s)?|watch|story|posts)(\.php?|\/).+$/;
if (ytRegex.test(url)) { return { source: "Youtube", url: url, id: ytRegex.exec(url)[1] }; }
if (instaRegex.test(url)) { return { source: "Instagram", url: url, id: instaRegex.exec(url)[3] }; }
if (twitterRegex.test(url)) { return { source: "Twitter", url: url, id: twitterRegex.exec(url)[1] }; }
if (fbRegex.test(url)) { return { source: "Facebook", url: url, id: fbRegex.exec(url)[1] };
}
return { source: "Unknown", url: url, id: "" }; }
function replaceElementWithHtml(element, html) { var str = html; var Obj = element; //any element to be fully replaced if (Obj.outerHTML) { //if outerHTML is supported Obj.outerHTML = str; ///it's simple replacement of whole element with contents of str var } else { //if outerHTML is not supported, there is a weird but crossbrowsered trick var tmpObj = document.createElement("div"); tmpObj.innerHTML = ''; ObjParent = Obj.parentNode; //Okey, element should be parented ObjParent.replaceChild(tmpObj, Obj); //here we placing our temporary data instead of our target, so we can find it then and replace it into whatever we want to replace to ObjParent.innerHTML = ObjParent.innerHTML.replace('
', str); } } function loadfbApi() { var js = document.createElement('script'); js.src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.2"; document.body.appendChild(js); } function runYoutubeLazyLoad() { /// youtube lazyload var youtube = document.querySelectorAll(".youtube");
for (var i = 0; i
بعد انتهاء صلاحية المياه المعدنية.. هل يمكن تناولها؟
اختزال وتشويه.. هل خيّب مسلسل "معاوية" آمال المشاهدين؟
أرقام سبورت 24.. النصر والخلود بـ "ذكريات الدور الأول"
وزير الاستثمار يستعرض خطة عمل مصر للانضمام إلى تقرير "جاهزية الأعمال" 2026
«كايرون بتروليم»: 300 مليون دولار لحفر 7 آبار استكشافية بمصر خلال 2025
لماذا أرسلت موسكو أموالاً لحكومة الشرع؟
عاجل.. سعر الدولار اليوم الأحد فى بداية تعاملات البنوك.. استقرار أم ارتفاع؟
ضبط ٤٠ شيكارة دقيق بلدى مدعم محظور تداوله داخل ماكينة طحين بقرية عمروس
شرح جميع قدرات Godlike في Avowed - الجزء الثاني - سبورت ليب
النار في كل مكان.. اتساع محيط حريق المعامل المركزية لوزارة الصحة| ألبوم