将document.write替换为另一个函数

时间:2011-12-05 13:39:15

标签: javascript dom

我有以下脚本标记,其中函数A()执行document.write()。我无法访问A(),因为它来自第三部分脚本。

//block1
<script type="text/javascript">
    A();
</script>

我没有阻止block1的任何id / class,但我可以在A()之前引入一个函数调用。

<script type="text/javascript">
     B();
     A();
</script>

我希望B()函数将block1替换为

<script type="text/javascript">
     C();
</script>    
// or keep as is
<script type="text/javascript">
     A();
</script>

这可能吗?我应该怎么做呢?

2 个答案:

答案 0 :(得分:4)

如果您可以在定义A()之后但在调用之前插入代码(可能无法实现),那么您可以重新定义A(),就像在JavaScript中定义任何其他函数一样。

如果无法做到这一点,您可以在document.write被调用之前重新定义A(),然后在调用A()之后撤消该var write = document.write; document.write = function(s) { //do nothing, or whatever you want console.log(s); } //then, after A(), just do: document.write = write; 。例如:

{{1}}

答案 1 :(得分:0)

也许你可以修补A而不是?

A = C;

这将改变以后对A的所有呼叫以改为呼叫C.这可能是也可能不是你想要的。