获取 html 代码并编辑然后加载到 web 视图

Posted

技术标签:

【中文标题】获取 html 代码并编辑然后加载到 web 视图【英文标题】:Get html code and edit then load on to web view 【发布时间】:2014-04-28 05:40:46 【问题描述】:

我想在不受我控制的 UIWebView 上加载一个网站,并向其中编辑/添加某些 UI 更改(一些文本、图像等)。我可以在我的 ios 源代码中执行此操作吗?我无法更改托管的 html 内容,因为它们不受我的控制。 如果这在 iOS 源代码中无法实现,请告诉我实现此目的的正确方法。

【问题讨论】:

【参考方案1】:

将网页加载到NSString,进行任何修改,然后将html放入UIWebView

NSURL *url = [NSURL URLWithString:@"http://example.com/"];
NSString *page = [NSString stringWithContentsOfURL:url usedEncoding:nil error:nil];

/* Make changes to page here */

[self.webView loadHTMLString:page baseURL:nil];

【讨论】:

这种方法的问题是网站加载不正确,图片没有出现,链接失效等等...我尝试使用这种方法是因为我想添加' padding'(内容插入)到我的 WKWebView 的顶部,但它并没有真正按预期工作。【参考方案2】:

我会用 javascript 获取 dom,操作,然后用 JavaScript 注入。

stringByEvaluatingJavaScriptFromString:

您可以编写自己的全功能、缩小的 JavaScript,然后使用此方法进行传递。

// Change body color of any HTML content inside a UIWebView.
NSString *javaScript = @"document.getElementByTagName('body').backgroundColor = '#888';";
[webView stringByEvaluatingJavaScriptFromString:javaScript];

【讨论】:

以上是关于获取 html 代码并编辑然后加载到 web 视图的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 组合框值加载

在不重新加载 web 视图的情况下更改 html 文本颜色

如何将html字符串传递给android上的webview

在表单视图中加载模型并进行编辑

从核心数据中获取数据

从Web服务objective-c获取数据时的透明加载视图