我有以下脚本标记,其中函数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>
这可能吗?我应该怎么做呢?
答案 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.这可能是也可能不是你想要的。