覆盖document.write

时间:2018-06-12 17:02:39

标签: javascript html dom monkeypatching document.write

我正在尝试覆盖document.write,这样我就可以对原始的html解析它对代码进行一些操作并返回调用。 我的整个过程都是异步的,所以不用说当调用document.write时,如果页面已经完成加载document.write将删除整个文档,所以我不记得document.write。 我搜索过并发现了许多关于此的讨论,但几乎每一个都非常老,所以我找不到任何好的答案。 我现在的代码非常基本:

 const prevDocWrite = document.write;
 document.write = function(str,patched) {
        if(patched){

            prevDocWrite.call(this, str);
        }else{
            Dom_Parser(str, context).then(newStr => {

                prevDocWrite.call(this, newStr);
            })};
    };

我添加了“patched”部分,因为我也在我的代码上调用document.write,所以我称之为document.write(“str”,true),它会立即调用原始document.write。

我真的很感激如何实现这一目标的任何帮助或想法(其他参考项目将很棒)

BTW我看到很多使用innerHtml的实现,但这搞砸了<script>标签:(

非常感谢

0 个答案:

没有答案