0

我正在使用 addUserScript() 将用户脚本添加到我的 WKWebView 的 WKUserContentController。我注意到即使调用 loadRequest() 脚本仍然存在。

对于某些用例,我可能需要删除某些脚本并添加其他脚本。但是,删除脚本的唯一方法似乎是 removeAllUserScripts()。这非常不方便,因为这意味着我必须删除所有脚本,然后重新添加我想要保留的脚本。

如果有人知道删除特定脚本的任何方法(按名称、句柄等),请告诉我。

4

1 回答 1

1

我不认为“删除脚本”是可能的(如果我正确理解你的问题,甚至没有意义)。

“脚本”只是用于为 Javascript 环境提供诸如变量、函数等元素定义的文本......两个脚本可以很好地相互覆盖(例如定义相同的函数 foo()),所以根据你加载它们的顺序,你有一个不同的结束环境(你只有最后加载的脚本的 foo() 定义)。那么在这种情况下“删除脚本”是什么意思呢?

如果您真的想摆脱 Javascript 环境中的元素,您总是可以将它们重新定义为不做任何事情的东西(例如,将 foo() 重新定义为 {})。但我想最简单的方法就是不再使用 foo() 。

于 2019-03-16T08:42:56.570 回答