документ.запись вложена в документ.запись

#javascript #html #image

#javascript #document.write

Вопрос:

У меня есть тег ad, который третья сторона пытается вставить внутрь функции document.write, и он не работает, потому что сам тег ad также содержит document.write. Есть ли способ вставить этот тег ad в один экземпляр document.write? Если да, пожалуйста, помогите мне разобраться в этом, а если нет, есть ли альтернатива?

 <script type='text/javascript'>
var m3_u = 'http://this.that.com/adtag.js';
var m3_r = Math.floor(Math.random() * 99999999999);
var category='999';

if (!document.MAX_used) 
    document.MAX_used = ',';

document.write("<scr"   "ipt type='text/javascript' src='"   m3_u);
document.write("?c="   category  "amp;amp;b=Sampletagamp;amp;p=ptnramp;amp;key=4984cc8f3064e22a4e29fb2b3b2e9cb5");
document.write('amp;amp;cb='   m3_r);

if (document.MAX_used != ',') 
    document.write("amp;amp;exclude="   document.MAX_used);

document.write(document.charset ? 'amp;amp;charset='   document.charset :
(document.characterSet ? 'amp;amp;charset='   document.characterSet : ''));
document.write("amp;amp;loc="   escape(window.location));

if (document.referrer) 
    document.write("amp;amp;referer="   escape(document.referrer));
if (document.context) 
    document.write("amp;context="   escape(document.context));
if (document.mmm_fo) 
    document.write("amp;amp;mmm_fo=1");

document.write("'></scr"   "ipt>");
</script>
  

Комментарии:

1. JavaScript и HTML5 — будущее современного программирования?

Ответ №1:

document.write часто считается вредным методом, поскольку он напрямую вставляет содержимое в сам файл документа. Вам следует отредактировать innerHTML тега, в который вы хотите вставить код, хотя я слышал, что прямое использование innerHTML также неверно. Метод называется insertNode, если я правильно помню, но я не уверен, потому что я обычно абстрагируюсь от проблем такого типа, используя такие фреймворки, как jQuery, где это так просто, как

 $("#myelement").html("<script>...</script>")
  

Я надеюсь, что некоторые из моих коллег-участников SO смогут сделать этот пост более точным, я сам посмотрю кое-что, но считаю, что это мой быстрый ответ.

Комментарии:

1. Поскольку у него нет доказательств jQuery в его примере, используйте document.getElementById('#element').innerHTML = '<script>...</script>';