一个客户的网站有一个自动刷新功能,这对桌面网站非常有用,但我正在制作一个iPhone应用程序,需要在移动版本上禁用它。
使用的代码是:
<META HTTP-EQUIV="REFRESH" CONTENT="30">
如果可能的话,我想使用javascript来禁用它。
谢谢。
编辑:
我没有访问HTML文件的权限,因此无法修改它。我需要通过Xcode中Objective-C端的代码来实现这一点。
最佳答案
假设您使用的是UIWebView来显示站点,则可以使用[webView stringByEvaluatingJavaScriptFromString:@"..."];
,其中“…”是javascript:
var metaTags = document.getElementsByTagName("META");
for(var i = 0; i < metaTags.length; i++) {
if (metaTags[i].getAttribute("HTTP-EQUIV").match(/^REFRESH$/i))
metaTags[i].parentNode.removeChild(metaTags[i]);
}
为方便起见,浓缩成一行:
var metaTags = document.getElementsByTagName("META"); for(var i = 0; i < metaTags.length; i++) { if (metaTags[i].getAttribute("HTTP-EQUIV").match(/^REFRESH$/i)) { metaTags[i].parentNode.removeChild(metaTags[i]);}}
编辑:嗯……毕竟,通过简单地从文档中删除meta标签,不可能取消现有的刷新请求。一旦解析器看到meta标记,它将刷新,而不管您做了什么javascript欺骗。不幸的是,解决这个问题的唯一方法是直接修改HTML页面。