处理 Webview 上的 HTML onClick 函数。 shouldOverrideUrlLoading() 未调用

Handling HTML onClick function on Webview. shouldOverrideUrlLoading() not called

我想从加载到我的 WebView 的 HTML 页面拦截 'onclick' 函数。

<div class='button' onclick="location.href='http://do_something';">
<span>
  Click Here
</span></div>

这是我感兴趣的 HTML 页面上的点击事件,但不幸的是我的 WebClient 的 'shouldOverrideUrlLoading()' 方法根本没有为这次点击触发。

当我像这样(如下)更改上面的 HTML 按钮时,它的工作正常。

<a href="http://do_something">Click Here</a>

但是我真的不想对HTML做任何改动。有什么想法可以在不修改 HTML 内容的情况下处理这个点击事件吗?

由于 onclick 属性 executes JavaScript (location.href),您需要在 WebView:

中启用 JavaScript
val myWebView: WebView = findViewById(R.id.webview)
myWebView.settings.javaScriptEnabled = true

请注意,此 should be used carefully 因为它可能会在您的应用程序中引入 XSS 漏洞。