Вставить скрипт внутри скрипта..
Есть некий скрипт, который работает и при определенном условии срабатывает. Очень хочу в него внести еще один скрипт - избавился от скобок <javascript> и внес содержимое внутрь в конец текста. Конечно работает. Но я бы много раз (раз 500 может быть) пытался перебрать варицаии чтобы вставить его в нужное условие. он не срабатывает. подскажите как сделать. вот основной код скрипта.
Цель - внедрить скрипт <script id="_wauu9s">var _wau = _wau || []; _wau.push(["classic", "mbuvbdq8bf1e", "u9s"]); (function() {var s=document.createElement("script"); s.async=true; s.src="http://widgets.amung.us/classic.js"; document.getElementsByTagName("head")[0].appendChild(s); })();</script> в этот файлик *.JS var ads = "adb"; var msg = '<br><br><br><br><div style="position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden; color: white; font-size: 14px; margin-bottom: 59px; padding: 264px; background-color: black; font-size: 130%; font-size:15px; ">Пожалуйста, отключите AdBlock, чтобы смотреть видео.<br><br><br><br><br><br><br>'; // заглушка для IE, т.к. нет функции getElementByClassName if (document.getElementsByClassName === undefined) { document.getElementsByClassName = function(className) { var hasClassName = new RegExp("(?:^|\s)" + className + "(?:$|\s)"); var allElements = document.getElementsByTagName("*"); var results = []; var element; for (var i = 0; (element = allElements[i]) !== null; i++) { var elementClass = element.className; if (elementClass && elementClass.indexOf(className) !== -1 && hasClassName.test(elementClass)) results.push(element); } return results; }; } var checkAdblock = function() { var img = $("<IMG>"); img.attr("src","http://pagead2.googlesyndication.com/pagead/images/google-logo.png"); img.attr("id","AdBlockChecker"); img.css({ position: "absolute", left: "-9999px", top: "-9999px" }); window.checkadblockflag = true; $("body").append(img); $("#AdBlockChecker").one('load',function() { var ads = "adb"; var msg = '<br><br><br><br><div style="position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden; color: white; font-size: 14px; margin-bottom: 59px; padding: 264px; background-color: black; font-size: 130%; font-size:15px; ">Пожалуйста, отключите AdBlock, чтобы смотреть видео.<br><br><br><br><br><br><br>'; if($("#AdBlockChecker").width() > 0) { console.log($("#AdBlockChecker").width()); console.log("Adblock disabled"); window.checkadblockflag = false; } else { console.log($("#AdBlockChecker").width()); console.log("Adblock enabled"); window.checkadblockflag = true; blocked = 0; //получаем массив всех рекламных элементов var ad_nodes = document.getElementsByClassName(ads); for (i in ad_nodes) { ad_nodes[i].innerHTML = msg; } } }).one('error', function() { console.log($("#AdBlockChecker").width()); console.log("Adblock enabled"); window.checkadblockflag = true; blocked = 0; //получаем массив всех рекламных элементов var ad_nodes = document.getElementsByClassName(ads); for (i in ad_nodes) { ad_nodes[i].innerHTML = msg; } }); }; $(document).ready(checkAdblock); Но не просто внедрить, а вставить именно там когда начинается срабатывание var msg. Пробовал даже заключить прямо в var msg='' Но он не срабатывает. Поправьте пожалуйста как нужно сделать..я уже выпарилась. ========================= Если кому интересно. Это рабочий код для того чтобы идентифицировать включен ли AdbLock в браузере, и если он включен то вывести показать собщение пользователю в блок <div class="adb"></div> Скрипт который нужно внедрить - это отдельный скрипт сбора статистики. Идея в том что если выводить сообщение va msg совместно со статистикой - то через статистику можно выявить количество тех кто использует adblock, а это очень нужно знать чтобы принять меры, чтобы создать лояльность.. вобщем просто руки упали пробовать расшепить код <script></script> и внедрить его в нужное место... Заметили что если дописать его в конце кода. то он работает вне зависимости включен ли адблоск или не включен. Т.е. выполняется сразу после подгрузки.. а это не то.. |
var msg='<script id="_wauu9s">var _wau=_wau||[];_wau.push(["classic","mbuvbdq8bf1e","u9s"]);(function(){var a=document.createElement("script");a.async=true;a.src="http://widgets.amung.us/classic.js";document.getElementsByTagName("head")[0].appendChild(a)})();<\/script>'; msg+='<br><br><br><br><div style="position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden; color: white; font-size: 14px; margin-bottom: 59px; padding: 264px; background-color: black; font-size: 130%; font-size:15px; ">Пожалуйста, отключите AdBlock, чтобы смотреть видео.<br><br><br><br><br><br><br>'; только код со скриптами нун добавлять не 45 for (i in ad_nodes) { 46 ad_nodes[i].innerHTML = msg; 47} А через $(ad_nodes).each(function() { $(msg).appendTo($(this).empty()); }); ================= Единственное, что непонятно, нафига его совать во все элементы ? Наверняка достаточно единожды в первый или последний элемент ? |
Спасибо, буду пробовать.
|
Часовой пояс GMT +3, время: 10:35. |