4

I'm hitting a very peculiar difference between the Android browser and a WebView. Namely, I have the following markup:

<script type="text/javascript">
    <!--

    // some js code...

    // -->
</script>

Now, in the browser, this works perfectly fine. However, when loading the markup in the WebView using loadData(markup, "text/html", "utf-8"), the JavaScript code is not executed at all.

Now, if I remove the HTML comment tags (<!-- and -->), it works fine in the WebView as well. However, this is not something that I want to do, because the markup is coming from a web service that I'd rather not change.

Is there something I can do with the WebView to accept this markup?

4

1 回答 1

2

总体而言,将 JavaScript 放入注释的技巧似乎不再是推荐的模式,因此我鼓励您重新考虑继续以这种方式提供服务的计划。

您显然已经在 中启用了 JavaScript WebView,否则当您尝试删除评论时它将无法正常工作。我知道没有其他设置可以告诉WebView忽略评论标记。

欢迎您检查AOSP 浏览器代码以尝试找出它们的作用,尽管该代码令人讨厌、粗鲁且冗长。您可以在将 HTML 交给WebView. 您可以在该用户代理上设置一个特定的用户代理,WebView并让您的 Web 服务为该用户代理交回已清理的 HTML,而使您的其余 Web 服务客户端不受影响。并且您可以查看是否收到对您的错误报告的响应,尽管不能保证会收到这样的响应。

除此之外,我没有想法。

于 2013-08-14T14:12:38.567 回答