谷歌插件如何修改window对象

前段时间在用谷歌插件写抢购脚本时发现,无法在脚本文件中对window.alert重新赋值来阻止页面alert弹框

window.alert = function alert(msg) {
                console.log(msg)
            }

查阅资料发现,Chrome Extensions在一个单独的环境中运行,限制了对实际window对象的访问,并提供了仅对扩展有效的副本.

为了解决这个问题,我们可以将脚本元素直接注入到文档中.这样,您可以访问文档的环境和真实window对象.

var disablerAlert = function () {
            window.alert = function alert(msg) {
                console.log(msg)
            }

        }
        var disablerCode = "(" + disablerAlert.toString() + ")();"
        var disablerScriptElement = document.createElement('script')
        disablerScriptElement.textContent = disablerCode
        document.documentElement.appendChild(disablerScriptElement)
        disablerScriptElement.parentNode.removeChild(disablerScriptElement)

通过这种方式,就可以直接修改页面window对象属性了。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章