首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在swift 4中如何在WKWebView中删除网页中的DIV标签?

在Swift 4中,可以使用WKWebView来加载和显示网页内容。如果想要删除网页中的DIV标签,可以通过以下步骤实现:

  1. 首先,确保已经导入WebKit框架,以便使用WKWebView类。
代码语言:txt
复制
import WebKit
  1. 创建一个WKWebView实例,并将其添加到视图层级中。
代码语言:txt
复制
let webView = WKWebView(frame: view.bounds)
view.addSubview(webView)
  1. 加载网页内容。
代码语言:txt
复制
if let url = URL(string: "https://example.com") {
    let request = URLRequest(url: url)
    webView.load(request)
}
  1. 在WKWebView的代理方法中,使用JavaScript来删除DIV标签。
代码语言:txt
复制
extension ViewController: WKNavigationDelegate {
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        let script = "var elements = document.getElementsByTagName('div'); for (var i = 0; i < elements.length; i++) { elements[i].parentNode.removeChild(elements[i]); }"
        webView.evaluateJavaScript(script, completionHandler: nil)
    }
}

在上述代码中,我们在webView(_:didFinish:)方法中使用了JavaScript来删除所有的DIV标签。首先,我们通过getElementsByTagName方法获取到所有的DIV元素,然后使用循环遍历并删除每个元素。

  1. 设置WKWebView的导航代理。
代码语言:txt
复制
webView.navigationDelegate = self

确保在视图控制器中实现了WKNavigationDelegate协议。

这样,当WKWebView加载完成后,所有的DIV标签都会被删除。

请注意,以上代码仅适用于删除网页中的DIV标签。如果需要删除其他类型的标签或进行其他操作,可以根据需要修改JavaScript代码。

推荐的腾讯云相关产品:腾讯云CDN(内容分发网络),用于加速网页内容的传输和分发,提供更好的用户体验。产品介绍链接地址:https://cloud.tencent.com/product/cdn

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

macOS webview编程

一是WKWebview文档,二是iOS类文档。想要macOS下面Webview资料缈黄鹤。 经过部分只言片语资料指导和大量实验,终于完成了工作。所以决定来烧烧冷灶,写出来记录一下。...addSubview(webView)把webview控件插入到界面。 2.载入网页 可以直接导向到某个网页,也可以先在本地启动一个静态页面文件,后续一些工作可以本地静态网页中用js处理。...swift调用网页callFromSwift函数并获取其返回值可以这样做: let s=webView.windowScriptObject.evaluateWebScript(...函数名跟js函数名可以不一样, //#selector中指明swift声明函数名,因为selector是object-c机制, //所以后面声明真正函数时候,前面必须加...} 也有些程序为了简化从js调用swift工作量,会用链接方式,链接地址传入一些指令,就可以用这个函数截获网址并且处理,被处理网址通常使用listener.ignore()来禁止本次浏览器转向

5.1K50

小程序iOS客户端框架——控件事件逻辑框架与控件原生化(下)

原生控件插入到WKWebView后将覆盖控件树HTML节点) 如上图,插入原生控件必然总是盖住网页(节点树中越靠下节点,显示层级越高),这样就会导致: 1 如果开发者期望原生控件上覆盖一些自定义...普通情况下生成原生控件与HTML节点无对应关系,但是在某些特殊情况下,一些特殊DOM元素会在WebView对应位置生成位置、大小完全一致原生控件,包含overflow属性DIV标签,如下图所示...利用这个属性,我们可以开发者期望插入原生控件位置,预生成一个包含overflow标签DIV节点,然后插入原生控件时,将原生控件插入到该标签对应UIScrollView上,就可以做到“原生控件不遮挡...,并通过“组件API”insertContainer通知客户端该滚动条位置、大小; b、客户端根据insertContainer传入位置和大小,WKWebView下遍历找到这个DIV标签对应UIScrollView...因此需要对事件做特殊处理:通过重载WKWebViewhitTest方法,该方法处理逻辑优先处理网页事件,如果网页未处理,再传递给原生控件。 8.

2.8K40

UI篇- UIWebView使用大全

,不做深究 WKWebView是iOS8推出,算是UIWebVeiw升级版。...,这个协议包含一个必须实现方法,这个方法是提高App与web端交互关键,它可以直接将接收到JS脚本转为OC或Swift对象--网上大神说,我没用过。)...OC调用JS方法 与UIWebView进行交互,调用web页面需要传参函数时,参数需要带单引号,或者双引号(双引号需要进行转义转义字符前加\),传递json字符串时不需要加单引号或双引号:...OC给JS传参数,如何在OC获取到JS传递过来参数 如果要实现这样JS和OC数据交互,需要使用到一个第三方文件:WebViewJavascriptBridge 给web发消息 @property...UIWebView iOS11使用。 ? UIWebView iOS 11上 当顶部 y值设为 0 时,是依然无法盖住UIStatusBar区域,但是滚动时就会出现问题了。

1.9K10

iOS新闻类App内容页技术探索

何在页面合理处理WebView与扩展区多种View协同滚动,灵活扩展,并且支持下拉刷新、上拉加载等操作,不同新闻类App也有不同技术方案。 1....简单图片展示耗时 对于内容WebView图片,最简单作法,就是后台直接下发Img标签,依靠WebView自身下载与渲染。...页面模板使用空div占位: 结合后台模板与数据,全部模板全部非文字类组件,映射成统一ClassDiv,通多唯一id与数据绑定。...更加丰富状态: ReusableNestingScrollview ,为了满足更复杂需求,视频预加载及自动播放、Gif预加载及自动播放等,我们扩展了组件滚动过程状态,增加自定义workRange...删除组件完全无需操作内容页,删除独立MVC结构并停止注册即可。 2. 易于扩展内容页类型 为了实现内容页扩展区灵活复用, HybridPageKit 也扩展了非WebView类型内容页。

2.8K00

iOS开发----JavaScriptCore、UIWebView及WKWebView交互那些事

分别使用 UIWebView 以及 WKWebView 实现效果如下: JavaScriptCore 类库里面有12个类(还有两个是负责导入相关类头文件以及一个关于WebKit宏定义);基本交互过程...宏,可以将方法名简化,就像 Swift typealias以及 ObjC typedef。...中方法就是客户端闭包,不过这里楼主采用了Swift和ObjC混编模式,至于原因下面会说一下: 实现方法: Swift版本如下,功能实现在本人看来应该是一样,但在进行注入时候出现了问题,导致执行方法出现了...UIWebViewDelegate UIWebViewDelegate webViewDidFinishLoad() 方法对JSContext进行截取,并执行操作: WKWebView 首先有一点...添加JavaScript交互 WKNavigationDelegate告知web当前使用webView类型: 履行WKScriptMessageHandler协议,完成交互操作即可 最后记得移除哦

1.4K20

wkwebview加载完成_【SwiftWKWebView与JS交互使用

二、WKWebView 支持更多HTML5特性 高达60fps滚动刷新频率与内置手势 与Safari相容JavaScript引擎 性能、稳定性方面有很大提升占用内存更少 协议方法及功能都更细致...接口实现,需要有提示信息以及两个相应事件, 确认及取消,并且completionHandler回传相应结果,确认返回YES, 取消返回NO //参数 message为 js 方法 confirm...[0].text) })) self.present(alertViewController, animated: true, completion: nil) } 4、获取网页节点数据...let js = "document.getElementsByTagName('h2')[0].innerText = '这是一个iOS写入方法'"; //将js注入到网页 6、js获取DOM节点几种方式...您使用此类有两个主要目的:支持并发 JavaScript 执行,并管理 JavaScript 和 Objective-C 或 Swift 之间桥接对象内存。

5.5K00

理解iOS端WebView同层组件

因此,微信小程序开发框架,还提供了一些以”cover-“开头组件,这些组件本身是原生,只是贴在了WebView上面。借助原生组件,可以极大提高应用性能体验,但是也有一些弊端。...原生组件层级WebView之上,因此无法Web通过标签层级来调整组件z轴位置。 原生组件与WebView文档流是完全脱离,这使得布局控制变得困难。 同层组件出现正为解决这些问题。...iOS,我们使用WKWebView来创建Web视图,WKWebView进行解析渲染时,会将Web组件渲染到WKCompositingView上,这个View是一个原生UIView子类,通常WKWebView...内核会将多个组件共同渲染到同一个WKCompositingView上,但是如果某个HTML标签style设置了overflow: scroll属性,并且内容超出容器大小,WKWebView就会为其单独创建一个...JS与原生交互命令可以定制一套完整协议,组件插入,组件更新,组件删除等。 传递数据可以定义完整丰富,例如要插入组件类型,可能是视频,音频,地图等,各种组件原生端属性配置等映射。

2.5K20

iOS开发WKWebView与JS交互

/u010105969/article/details/53189934),可当时用来展示网页控件是UIWebView,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS交互却与...点击前三个按钮时候会调用方法: // 警告框 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString...注意:利用UIWebView展示网页时候我们如果要想与JS进行交互那么我们就得获取JS代码方法名,而我们使用WKWebView时候就不用了。...传数据: 网页给客户端传递数据有时并不只是一个字符串这个简单,还可能是JSON数据类型数据,这时我们需要其他传递数据方式。...客户端需增加代码: // 注入JS对象名称AppModel,当JS通过AppModel来调用时, // 我们可以WKScriptMessageHandler代理接收到  [config.userContentControlleraddScriptMessageHandler

2.2K20

http:blog.csdn.netu010105969articledetails53541088

本文链接:https://blog.csdn.net/u010105969/article/details/101682356 iOS开发WKWebView与JS交互 之前已经写过一个篇OC与JS...WKWebView,此控件也能用来显示网页,可与JS交互却与UIWebView有所不同。...注意:利用UIWebView展示网页时候我们如果要想与JS进行交互那么我们就得获取JS代码方法名,而我们使用WKWebView时候就不用了。...传数据: 网页给客户端传递数据有时并不只是一个字符串这个简单,还可能是JSON数据类型数据,这时我们需要其他传递数据方式。...客户端需增加代码: // 注入JS对象名称AppModel,当JS通过AppModel来调用时, // 我们可以WKScriptMessageHandler代理接收到 [config.userContentControlleraddScriptMessageHandler

1.5K30

iOS iOS与html进行交互

然后点击下一页按钮 通过js响应显示另一个网页          最后通过下一页按钮可以返回到首页。     本文仅仅是h5跟ios 交互入门 所以没有做细致描述。...1 我自己写了两个小网页。 代码如下 首页indexPage.html <!...我这边采用方式是:通知传值方式 思路: webviewVC界面初始化时候就要把通知加上 然后 登录成功之后  发送通知 将值传给h5 //添加一个通知 等着需要传值给html时候就用这个通知...2.允许jsNitro库加载并使用(uivieqview限制) 3.支持更多html5特性 4.高达60fps滚动刷新频率以及内置手势 5.将uiviewviewdelegate与uiwenview... oc代码 文件路径 根据实际情况定 ,如果是项目中本地就用我注释方法,如果是电脑桌面上就可以用没有注释路径,根据实际情况来。

2.3K100

iOS小技能:WKWebView与JS交互

前言 由于目前UIWebView 已经被抛弃了,因此推荐使用WKWebViewWKScriptMessageHandler实现iOS与JS交互 WKWebView是AppleiOS8推出Webkit...框架负责网页渲染与展示类,相比UIWebView速度更快,占用内存更少,支持更多HTML特性 I JS调用iOS 使用例子:点击页面图片,调用iOS方法进行图片放大显示 1.1 JS代码: window.webkit.messageHandlers.openImage.postMessage...:-viewWillAppear:方法执行add 监听,-viewWillDisappear:方法执行remove 监听。...+ params; } 2.2 获取网页title 获取网页title: 加载请求完成才执行 //!...UIProcess进程:主要负责与 WebContent 进行交互,与 APP 同一进程,可以进行 WebView 功能配置,并接收来自 WebContent 进程各类消息,配合业务代码执行任务决策

5.8K30

H5如何与原生App通信?

客户端,我们首先要提到是一个叫UIWebView容器,苹果对他介绍是: UIWebView是一个可加载网页对象,它有浏览记录功能,且对加载网页内容是可编程。...RN容器 react-native开发,从rn 0.37版本开始官方引入了组件,安卓调用原生浏览器,IOS默认调用是UIWebView容器。...m.douyu.com' }} /> WebView组件不要嵌套在或原生点击组件,会造成H5内页面滚动失效 h5向ios客户端发送消息; ios,并没有现成api让js去调用native方法,...所以我们思路就是通过h5内发起约定好特定协议网络请求,'jsbridge://bridge2.native?...params=' + encodeURIComponent(obj)然后带上你要传递给ios参数;然后客户端内拦截到指定协议头请求之后就阻止该请求并解析url上参数,执行相应逻辑 H5发起这种特定协议请求方式分两种

5.8K20

【小程序开发必读】怎样写出一手好小程序之多端架构篇

所以小程序上一些性能难点,开发者工具上并不会构成很大问题。比如说,不会有 canvas 元素上不能放置 div,video 元素不能设置自定义控件等。...简单来说,它会直接将 native 相关属性和方法,直接转换成 prototype object 上方法和属性。 那 JS 代码,如何执行 Swift 代码呢?...对于 UIWebview 可以直接获得当前 webview Context,但是 WKWebview 已经没有了直接获取 context 接口,wkwebview 更推崇使用前文 scriptMessageHandler...当然,获取 wkwebview context 也不是没有办法,可以通过 KVO trick 方式来拿到。...同层渲染,这些信息其实都是内核管理。

1.5K60
领券