在iOS UIWebView中如何在它完成加载之前获得html DOM内容
In iOS UIWebView how to get html DOM content before it finished loading?
我得到一个url,我想在我的UIWebView中像这样呈现它:
request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[_webView loadRequest:request];
但是由于中国的网络限制,我们无法访问谷歌服务,但是这个url的页面正在使用:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
所以我不得不等待很长一段时间,因为它无法从ajax.googleapis.com
获得js文件,我想做的是与本地js文件交换这个脚本源,以便在将来启用javascript调用。
我想如果我能在DOM完成加载之前得到它,那么我可以像这样添加我的脚本源:
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
但是我怎么做呢?
我试图加载我的本地html文件,但参数是动态的从服务器端。
我试图调用[_webView stringByEvaluatingJavaScriptFromString:url]
在所有的UIWebView委托方法,但没有工作。
我的解决方案是:
在发送url后设置一个计时器,以便计时器等待尝试检测接收到的DOM,以检查<head>
是否已经收到一次。
在计时器运行期间,接收到的DOM内容可能不是完整的,直到DOM接收完成加载。
但是没关系,因为我想做的是注入一些js代码到<head>
,这是DOM内容的第一部分。
所以当我成功地将<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
注入到DOM中的<head>
之后,我不会关心整个东西什么时候完成加载,如果我点击页面上的任何按钮,它会使用我刚刚注入到<head>
中的jquery代码,而不是默认的。
谁有更好的主意,请告诉我,谢谢。
相关文章:
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 使用append时复制内容的DOM
- 创建一个HTML文件,该文件使用DOM在用户每次单击按钮时交换两段内容
- 使用车把仅为 JSON 中的特定键生成 DOM 内容
- jQuery Slider/Carousel 在 DOM 之后更新内容
- 无法从页面获取完整的 dom 内容
- 文本内容长度在 DOM 操作后不会更改
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 将内容推送到浏览器..更改DOM
- 如何使用cheerio(类似jquery的选择器,但没有dom)生成javascript变量的内容
- AngularJS完成异步加载后将内容添加到DOM
- angular2:使用*ngIf构建svg图标不会给DOM添加任何内容
- 为插入到Shadow DOM中的内容设置样式
- 在页面内容完全加载后,使用jQuery在DOM中添加元素
- 如何设置新创建的 DOM 元素的 HTML 内容
- 允许内容可编辑在 dom 修改后撤消
- 加载特定元素的 AJAX 内容(将 DOM 元素传递给 AJAX 回调函数)
- 在我的情况下,如何将 html 内容添加到我的 dom 中
- 如何在不插入 dom 的情况下加载 mbox 内容
- PhantomJS - 从单击事件加载的内容不会加载到 DOM