如何动态添加Floodlight代码

时间:2018-05-17 16:50:55

标签: javascript html dynamic

我正在尝试动态地向我的网页添加Floodlight代码。此页面由多家不同的公司使用,因此我们已实施动态添加跟踪和分析,以便每家公司都可以添加自己的跟踪。

我有一个div:<div id="bodyTrackingCode"></div>位于正文标记的正下方。

我使用.html插入跟踪代码:$('#bodyTrackingCode')。html(Info.BodyTracking);

这适用于所有类型的Google分析代码。不幸的是,我遇到了泛光灯标签的问题。我相信这是因为代码中的“document.write”。

代码如下所示:

<!-- Start of DoubleClick Floodlight Tag: Please do not remove Activity name of this tag: xxxxxx to Call-Landing URL of the webpage where the tag is expected to be placed: xxxxxxx This tag must be placed between the <body> and </body> tags, as close as possible to the opening tag. Creation Date: 05/01/2018 --> <script type="text/javascript"> var axel = Math.random() + ""; var a = axel * 10000000000000; document.write('<iframe src="https://3948978.fls.doubleclick.net/activityi;src=xxxxxxx;type=hea-l0;cat=jj-he0;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>'); </script> <noscript> <iframe src="https://3948978.fls.doubleclick.net/activityi;src=xxxxxxx;type=hea-l0;cat=jj-he0;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe> </noscript> <!-- End of DoubleClick Floodlight Tag: Please do not remove -->

我已尝试转义结束iframe标记和结束脚本标记。它给出了语法错误意外令牌&lt;

的控制台错误

当我转义标签页面加载时。如果我没有转义标签,页面就是一个大白屏。我怀疑document.write正在替换正文代码。

我不知道如何让它正常工作。帮助!

2 个答案:

答案 0 :(得分:1)

如果你有document.write你无法控制,你可以这样做,如果你在加载脚本之前插入它:

var myWrite = document.write, myWriteLN=document.writeln, dbhtml;
document.write=function(str) {
  dbhtml += str;
}
$(function() {
  $('#bodyTrackingCode').html(dbhtml);
});

答案 1 :(得分:0)

document.write只会在页面加载时执行时向html添加一些内容。如果页面已经加载,那么document.write将根据所写内容替换整个html,请参阅此处的说明:https://www.w3schools.com/jsref/met_doc_write.asp

由于您在加载页面后使用jQuery添加代码,因此可以将document.write(...替换为

jQuery('body').append(...

jQuery('#bodyTrackingCode').append(...