Есть ли способ перехватить `document.write`?
-
13-10-2019 - |
Вопрос
Я пытаюсь лениться загрузить код AdServer ...
На странице у меня сейчас есть:
<div class="ad">
<span>pos_1</span>
</div>
Затем я прохожу и вытаскиваю все объявления, которые должны быть на странице, позвоните в их JavaScript, включите файл, и это дает мне этот прекрасный беспорядок:
function do_ad(pos){
switch(pos){
case 'pos_1':
document.write('first ad text');
document.write('first ad more text');
//and so on for many many lines
break;
case 'pos_2':
document.write('second ad text');
document.write('second ad more text');
//and so on for many many lines
break;
}
}
Затем я хочу заменить пролет на результаты document.write
рекламный звонок.
Есть ли способ заставить его вернуть строку, которая была бы записана на страницу?
Решение
Я не понимаю, почему ты не можешь перезаписать document.write
Функция:
document.old_write = document.write;
document.write = function (str) {
// lalala
};
Глянь сюда: http://www.jsfiddle.net/n9hxy/
Другие советы
document.write = function(str) {
window.buf += str;
}
Функция DO_AD (POS) должна быть где -то вызвана. Почему бы не отображаться объявление?
<div class="ad">
<script>do_ad("pos_1");</script>
</div>
Не связан с StackOverflow