Я в ситуации, когда мне нужно добавить тэг объявления script динамически.
Само объявление представляет собой простой тег script с атрибутом src, указывающим на сервер объявлений. Фактический код, который затем выполняется, представляет собой двухэтапное испытание:
Во-первых, есть document.write(), например:
document.write("<iframe id='lctopti2017041855' src='about:blank' style='visibility: hidden;' onload=\"this.style.visibility='visible';\" style='border: 0px; overflow-x: hidden;overflow-y: hidden; width: 100px; height: 400px;' width='100' height='400' scrolling='no' frameborder='0' allowtransparency='true'></iframe>");
Далее, существует:
document.getElementById('lctopti2017041855').src = 'http://www.reallylongurl.com/blah.php?whatever=whatever'
Теперь кажется, что работающий document.write() при загрузке страницы в порядке; но я обнаружил, что если бы я взял тот же самый начальный тег и вытащил его внутри $('# somediv'). Например, prepend() перепишет всю страницу.
Есть ли способ справиться с этим? Идентификатор iframe и последующие URL-адреса объявлений всегда динамичны и генерируются, когда начальный тег script запрашивает javascript с сервера объявлений. Если исходный тег script имел всю необходимую мне информацию, я мог бы просто отключить document.write с помощью $('# where'). Prepend() или что-то еще. Как я могу решить эту проблему, не дожидаясь буквально соскабливания результатов начальной загрузки script, а затем с результатом?
Есть ли способ остановить document.write() от перезаписи страницы, а вместо этого писать только там, где она была вызвана?