是否可以仅覆盖另一个插件的/主题的js(资产)文件的一部分?

时间:2020-06-29 作者:Viktor Borítás

我试着前进一步on this question 而不是凌驾于整体之上。另一个插件的js文件,我想知道是否可以动态覆盖/交换js文件的一部分?

是否要以某种方式将我自己的函数安全地(并且相当自然地)另外“注入”/导入到该特定文件中?

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

Unfortunately no, 您可以按照其他问题的答案将文件出列,并将您自己的版本放入队列,否则您需要加载它,然后尝试在运行时修改加载的代码,这几乎总是不可行的。

Monkeypatching可能是一个解决方案,假设您的代码在他们的代码之前运行,但在他们的代码之后加载。但这几乎不可能。我们说的是千载难逢的机会。这是加载原始代码的地方,但在运行之前,您的代码会交换掉函数和数据结构。e、 g.删除jQuery插件,然后放置自己的插件。但在大多数情况下,这是不可能的。请注意,monkeypatching被广泛认为是一个难题,不是一个长期的解决方案,并且可能会自行引发问题。

也有可能原始文件的作者希望他们的代码是可扩展的,并以这种方式构建它。但这不太可能。您需要阅读代码才能逐案了解。

Eitherway there is no WP based solution for this. 要继续沿着这条路走下去,您需要询问stackoverflow,特别是如何覆盖已使用新加载的javascript文件加载的javascript文件中的功能。对于大多数情况,答案是你不能。对于那些可以强制执行的罕见情况,您将需要高级javascript知识。