从WKUserContentController

时间:2019-03-14 14:07:47

标签: javascript ios iphone wkwebview wkuserscript

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

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

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

1 个答案:

答案 0 :(得分:1)

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

“脚本”只是用于为Javascript环境提供元素定义(例如变量,函数等)的文本。 两个脚本可以很好地相互替代(例如,定义相同的函数foo()),因此,根据加载它们的顺序,您将拥有不同的最终环境(您只有最后加载的脚本的foo()定义) )。那么在这种情况下,“删除脚本”是什么意思?

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