首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript:banner代码更改?

JavaScript:banner代码更改?
EN

Stack Overflow用户
提问于 2017-12-26 09:20:09
回答 3查看 0关注 0票数 0

我想要改变用于显示banner的JavaScript的行为,它来自中央源。

今天,我在代码中包含了一个脚本标记,如下所示:

<script type="text/javascript" src="http://banner.com/b?id=1234"></script>

但是返回的是使用document.write的代码,如下所示:

if(condition) {
    document.write('<a href="..."><img src="..." /></a>')
}

我想以某种方式覆盖这个文档。编写并计算返回的代码,而不是使用JavaScript框架在DOM就绪时将代码绑定到div元素。

有办法吗?像这样吗?:

OnDOMReady() {
    BindBanner(1234);
}
BindBanner(bannerId) {
    var divTag = document.getElementById('banner_' + bannerId);
    divTag.innerHtml = ManipulatedReturenedCode(bannerId);
}

JavaScript的原型能够处理这样的事情吗?

编辑:它必须有点防水跨平台,跨浏览器兼容,所以我不知道是否改变文件,写都没问题。

EN

回答 3

Stack Overflow用户

发布于 2017-12-26 16:30:43

是的,你可以覆盖文档。写。没有必要进行原型开发,您可以直接在文档对象本身上进行。我通常这样做是为了分析恶意软件,但是它当然可以用来捕获广告脚本输出,只要广告脚本不做任何特别复杂的处理,从而导致文档之间的差异。写和你用它替换的任何东西。

下面是一个加载ad onload的包装器(稍微晚于DOMReady):

<div id="advertgoeshere"></div>

<script type="text/javascript">
    function rewrite(w) {
        document.getElementById('advertgoeshere').innerHTML+= w;
    }

    window.onload= function() {
        document.write= rewrite;
        var script= document.createElement('script');
        script.type= 'text/javascript';
        script.src= 'http://externalsite/ads.js';
        document.body.appendChild(script);
    }
</script>
票数 0
EN

Stack Overflow用户

发布于 2017-12-26 18:03:22

你试过重写文档吗?写?我现在没有时间试一试,你可以试试:

var foo = document.write;
var bannerCode = '';
document.write = function(str) { bannerCode += str; };

然后包含脚本文件,然后执行

document.write = foo;
alert(bannerCode);
票数 0
EN

Stack Overflow用户

发布于 2017-12-26 18:53:34

为什么不使用jQuery呢?它有一个DOM就绪函数:

$.ready(function() {

});

然后,你可以轻松地使用

$("#div_id").html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档