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
محمود عبد الحكيم يتحدث عن كواليس طلب جوزيه ضمه للأهلي
الأرصاد تحذر من سقوط أمطار اليوم
“الأورومتوسطي” يحذر من التصعيد الإسرائيلي “الخطير” للتهجير القسري بالضفة
رفض صومالي وسوداني لمقترحات أمريكية وإسرائيلية بشأن توطين فلسطينيين من غزة
غرامة وهبوط وتجميد موسمين.. عقوبات تنتظر الأهلي حال الانسحاب من الدوري
سعر اليورو مقابل الجنيه المصري اليوم الأربعاء 8 يناير 2025
تتصدرها آرسنال ضد نيوكاسل.. مواعيد مباريات اليوم الثلاثاء 7 - 1 - 2025
أوروبا تحتاج ملء 80% فحسب من مخزونات الغاز للشتاء المقبل - سبورت ليب
ورشة عمل... "الفنون الصخرية" تسلط الضوء على إرث المملكة في معرض جازان للكتاب
مصدر بـ الزمالك يوضح موقف النادي من توقيع أحمد رفاعي لـ سيراميكا كليوباترا