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
الزمالك يعيّن جوزيه بيسيرو مدرباً جديداً
نيوكاسل يونايتد يهزم آرسنال بثنائية نظيفة في ذهاب نصف نهائي كأس الرابطة
الشروط والمؤهلات المطلوبة للتقدم لوظيفة معلم مساعد لغة عربية
دواء الليفوثيروكسين للغدة الدرقية- إليك أفضل وقت لتناوله في رمضان
موعد مباراة الأهلي القادمة ضد إنبي في كأس الرابطة 2024/2025 والقنوات الناقلة
طارق مصطفى: حققنا فوزًا صعبًا ضد حرس الحدود
أكثر من 500 جنيه.. مسؤول يكشف مفاجأة بشأن زيادة المعاشات في الحزمة الاجتماعية
"البوشي" تستهدف تصدير 1000 طن خضراوات وفواكه مجمدة بـ2025 - سبورت ليب
سامسونج تُفاجئ مستخدميها بتحديث على أربعة أجهزة مميزة
«لُعْبَة القَفْزِ مِنَ النَّافِذَة»... صراع الأمل والموت وما بينهما