我怎样才能删除一些注入的脚本

How can i remove some Injected Script

我正在我的 GWT 应用程序中注入脚本

   ScriptInjector.fromUrl("js/jquery-1.7.2.min.js").setWindow(ScriptInjector.TOP_WINDOW).setCallback(new Callback<Void, Exception>()
        {

            @Override
            public void onSuccess(Void paramT)
            {
                ScriptInjector.fromUrl("js/viewer-2.2.1/WebViewer.min.js").setWindow(ScriptInjector.TOP_WINDOW).setCallback(new Callback<Void, Exception>()
                {

                    @Override
                    public void onSuccess(Void paramT)
                    {
                        ScriptInjector.fromString(getCreateInjection()).setWindow(ScriptInjector.TOP_WINDOW).setRemoveTag(false).inject();
                    }....

现在在应用程序的后面有一种方法可以删除我之前注入的这个脚本。

简而言之,由于 JS 的工作方式,您可能可以执行您所描述的操作并删除脚本标签本身,但可能无法执行您实际的意思 - 代码已执行,您不能将牙膏放回管中。通常可以删除脚本标签,也可以删除一些已创建的函数或已创建的类型,但任何已经 运行 并与您的页面交互的代码将一直存在,直到它决定待完成。

相反,您想了解您正在使用的 JS 脚本,看看是否有办法要求它完成,删除它修改过的任何元素,等等。

--

fromUrlfromString 变体都使用 inject() 方法,并且两种方法都 return 和 JavaScriptObject。该对象是实际的 <script> 标签 - 您可以将其转换为 Element 并在其上调用 removeFromParent() ,脚本标签将消失 - 但包含脚本的副作用仍然存在在那里。

其他选项包括在它自己的 <iframe> 中调用它并小心地从主页调用它,然后删除 iframe - 这只是作为删除所有导出函数等的简单方法,但是不会消除任何其他副作用。要了解如何做到这一点,您需要完全了解脚本在做什么 - 希望他们有文档来描述您如何实现您所追求的目标(或者您可以进一步澄清您的问题)。