客户的网站具有自动刷新功能,适用于桌面网站,但我正在制作iPhone应用程序并需要在移动版本上禁用它。
使用的代码是:
<META HTTP-EQUIV="REFRESH" CONTENT="30">
如果可能的话,我想使用javascript来禁用它。
感谢。
编辑: 我无法访问HTML文件,因此无法修改它。我需要通过Xcode中Objective-C端的代码来完成这项工作。
答案 0 :(得分:1)
我将介绍一些简单的
添加标识为meta
的{{1}}代码,如下所示:
id="meta-refresh"
只需使用这些脚本..
<meta http-equiv="refresh" content="2;http://new-url/" id="meta-refresh">
我相信这会有效..
此外,一旦加载,JavaScript无法禁用的启动请求!
同样,围绕一个人的确切工作可以在用户 var iOS = false,
p = navigator.platform;
if( p === 'iPad' || p === 'iPhone' || p === 'iPod' ){//remove which is not your target
iOS = true;
}
if(iOS){ // check if iOS then do the following
var mr = document.getElementById("meta-refresh");
mr.parentNode.removeChild(mr);
}
Old Post
答案中找到
以上是在加载文档之前使用xmlhttp requrest(AJAX)进行检查,如果设备是目标设备(iphone),则删除元标记
OR
可以使用动态刷新ID设备不是iPhone / iOS。这将删除进行动态检查和要求的要求,以避免第一次刷新调用。不使用元标记
XP1
答案 1 :(得分:0)
假设您使用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]);}}
编辑:嗯......毕竟,事实证明,只需从文档中删除元标记就无法取消现有的刷新请求。一旦解析器看到了元标记,它就会刷新而不管你做的任何javascript技巧。不幸的是,解决这个问题的唯一方法是直接修改HTML页面。
答案 2 :(得分:0)
简短回答:window.location.reload = () => {}
更长的答案: 大多数浏览器支持对刷新网页的功能进行一些修改。 此处已在 Chrome 上进行了测试。
免责声明:这将完全删除给定页面的页面重新加载功能。