问题描述
我正在获取一个URL,我想像这样在UIWebView中显示它:
request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[_webView loadRequest:request];
但是由于中国的网络限制,我们无法访问Google服务,但是具有此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文件,但是从服务器端来看,这些参数是动态的。
我试图在所有UIWebView委托方法中调用[_webView stringByEvaluatingJavaScriptFromString:url]
,但是没有用。
1楼
Boris
0
已采纳
2015-08-25 10:27:05
我的解决方案/解决方法是:
在发送url之后设置一个计时器,以便计时器将等待尝试检测接收到的DOM,以检查<head>
是否曾经被很好地接收过。
在计时器运行期间,在DOM接收完成加载之前,接收到的DOM内容可能不是INTACT。
但这没关系,因为我要做的是将一些js代码注入<head>
,这是DOM内容的第一部分。
因此,在将<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
成功注入到DOM的<head>
中之后,我将不再关心何时整个过程完成了,如果我单击页面上的任何按钮,它将使用我刚刚注入到<head>
的jquery代码而不是默认代码。
任何人都有更好的主意,请让我知道,谢谢。