Comments 8
document.write
? Really? +18
А почему бы не использовать для этих целей innerHTML или createElement? Зачем такие сложности?
+6
Вся суть в том, что если внутри вставляемого кода (как показано в примере ниже), есть свой document.write, то он сработает неверно.
Пример:
В итоге получим:
Some other data
Writen data created script
А не:
Writen data inner HTML
Writen data created script
Some other data
Все из-за того, что первый скрипт вообще не будет запущен, а когда будет запущен второй скрипт, то указатель записи сместится на последний тег — перед завершением body/.
В статье упоминалось, что
Пример:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="container"></div>
<div>Some other data</div>
<script>
var div = document.getElementById("container");
div.innerHTML =
"<" + "script>document.write(\"<\"+\"div>Writen data inner HTML<\" +\"/div>\");<" + "/script>";
var script = document.createElement("script");
script.innerHTML = "document.write(\"<\"+\"div>Writen data created script<\" +\"/div>\");";
div.appendChild(script);
</script>
</body>
</html>
В итоге получим:
Some other data
Writen data created script
А не:
Writen data inner HTML
Writen data created script
Some other data
Все из-за того, что первый скрипт вообще не будет запущен, а когда будет запущен второй скрипт, то указатель записи сместится на последний тег — перед завершением body/.
В статье упоминалось, что
скрипты могут содержать document.write
0
Если баннерная сеть предлагает использовать
Не, серьёзно, в наше время, когда космические корабли бороздят просторы Вселенной и большинство js-девелоперов даже знает, куда ставить
document.write
, то может нахрен такую баннерную сеть?Не, серьёзно, в наше время, когда космические корабли бороздят просторы Вселенной и большинство js-девелоперов даже знает, куда ставить
var
, использовать методы эпохи раннего прото-DHTML как-то не труъ. +10
Этот вопрос больше относится к рекламным сетям, коей мы не являемся.Какой рекламной сетью пользоваться, это дело личных предпочтений и выбора пользователя, отказываться от рекламных сетей, практикующих document.write или нет. Хотя, зачастую, вебмастер, в первую очередь, обращает внимание на эффективность рекламной сети и доход, который она ему приносит. Технологии в этом случае второстепенны.
К слову, синхронный вариант РСЯ и Adsence использует document.write. Если точнее, то синхронный Яндекс не испольует document.write, а синхронный использует во всю. Синхронный Adsence тоже использует. Но и там, конечно же есть асинхронный вариант. Так если обе эти крупнейшие сети до сих пор поддерживают оба варианта, значит это кому-нибудь нужно.
К слову, синхронный вариант РСЯ и Adsence использует document.write. Если точнее, то синхронный Яндекс не испольует document.write, а синхронный использует во всю. Синхронный Adsence тоже использует. Но и там, конечно же есть асинхронный вариант. Так если обе эти крупнейшие сети до сих пор поддерживают оба варианта, значит это кому-нибудь нужно.
0
Вот так как всегда мечтания о хорошем коде разбиваются о суровую маркетинговую реальность.
Грустно читать, что адсенс вставляется через какой-то адский механизм с прямой записью в документ, в то время как кнопочки гуглоплюса вставляются гибко и изящно. Хотя, может, это делается для обратной совместимости
Грустно читать, что адсенс вставляется через какой-то адский механизм с прямой записью в документ, в то время как кнопочки гуглоплюса вставляются гибко и изящно. Хотя, может, это делается для обратной совместимости
0
Чем больше людей вы научите подменять глобальный document.write, тем меньше сайтов смогут использовать ваше решение (просто потому что при двойной подмене одно из решений перестанет работать).
А все почему? Потому что не нужно лезть в глобальную область видимости, а тем более использовать такие устаревшие методы.
А все почему? Потому что не нужно лезть в глобальную область видимости, а тем более использовать такие устаревшие методы.
0
Наше решение запоминает document.write родительского сайта и проверяет, свой ли вызов document.write произошел — если этот вызов был с родительского сайта — передает его тому document.write, который был подменён. Так что для родительского сайта все остается прозрачно. Хотя в общем случае манкипатчинга, конечно, нужно избегать.
0
Only those users with full accounts are able to leave comments. Log in, please.
Карибское гражданство и паспорт Сент-Китс и Невис: когда границ не существует