我正在尝试动态地向我的网页添加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正在替换正文代码。
我不知道如何让它正常工作。帮助!
答案 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(...