document.write, вложенный в document.write - PullRequest
1 голос
/ 17 сентября 2011

У меня есть рекламный тег, который третьи лица пытаются вставить в функцию document.write, и он не работает, поскольку сам рекламный тег также содержит document.write.Есть ли способ поместить этот рекламный тег внутрь одного экземпляра 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;b=Sampletag&amp;p=ptnr&amp;key=4984cc8f3064e22a4e29fb2b3b2e9cb5");
document.write('&amp;cb=' + m3_r);

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

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

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

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

1 Ответ

1 голос
/ 17 сентября 2011

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

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

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

...