【问题标题】:Is there a way to dynamically edit content displayed in WebView?有没有办法动态编辑 WebView 中显示的内容?
【发布时间】:2016-01-16 16:44:47
【问题描述】:

我有一个加载了互联网网站的 webview,我想做的是动态编辑内容,例如更改代码

<button>Search</button>

<button>View</button>

到目前为止,我所做的是允许用户加载网站,然后我会获取 html,更改我想要的内容并将其加载到 webview 中。 内容变化很好,但没有显示图像(我想这是因为我没有图像等本地资源)。 有没有办法在保留所有图像、结构等的同时动态更改在线网站的内容? 提前致谢

【问题讨论】:

  • 您可以使用evaluateJavascript()(或者,在旧设备上,loadUrl("javascript:...") 在当前加载的网页的上下文中执行 JavaScript,其中 JavaScript 可以更改 DOM,类似于 JavaScript页面可能会自行加载。我不能说这是否能满足您的需求。

标签: javascript android html webview android-webview


【解决方案1】:

如果我理解正确,您是从网站加载页面,您更改内容,然后将修改后的页面发送到网络视图。

那么问题是“基础 URL”是您本地修改页面的,而不是原始网站,因此任何相对 URL(没有域名)都会使用它作为基础,当然会失败。

一种选择是添加:

<base href="(original URL of the page goes here)"/>

到您页面的&lt;head&gt;

这将解决加载图像、CSS、脚本等的问题。

但是,您会遇到任何受跨域保护(例如 Ajax)影响的问题。

或者,您可以从其原始 URL 加载页面,并使用本地 Javascript 修改页面内容。

【讨论】:

  • 它确实工作得很好,但我遇到了一个网站,这个解决方案(基本 href)不起作用,即资源没有显示。谢谢,虽然我可以使用它。
  • 您必须确保如果已经存在&lt;base href="xxx"/&gt; 标签,您当然不会覆盖它。正如我所说,你会遇到跨域问题。
猜你喜欢
  • 2019-08-16
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
相关资源
最近更新 更多