客户的网站具有自动刷新功能,该功能非常适用于桌面版网站,但我正在制作iPhone应用并需要在移动版上禁用它。禁用HTML自动刷新?
使用的代码是:
<META HTTP-EQUIV="REFRESH" CONTENT="30">
我想如果可能的话用javascript禁用它。
谢谢。
编辑: 我无法访问HTML文件,因此无法修改它。我需要通过Xcode中Objective-C一侧的代码来完成此操作。
客户的网站具有自动刷新功能,该功能非常适用于桌面版网站,但我正在制作iPhone应用并需要在移动版上禁用它。禁用HTML自动刷新?
使用的代码是:
<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标签,就无法取消现有的刷新请求。一旦解析器看到元标记,它就会刷新,无论你做什么的JavaScript欺骗。不幸的是,解决这个问题的唯一方法是直接修改HTML页面。
我将介绍一些简单的
ID为id="meta-refresh"
添加meta
标签是这样的:
<meta http-equiv="refresh" content="2;http://new-url/" id="meta-refresh">
只要使用这些脚本..
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);
}
我相信这会工作..
另外,启动的请求是哪个JavaScript ca ñ不禁用一次加载! 出于同样的,确切的工作围绕一个可以由用户给出的Old Post
答案找到XP1
以上是使用XMLHTTP requrest(AJAX)检查加载文档之前,取下meta标签,如果该设备是目标设备(iphone)
OR
一个可以刷新使用动态ID的设备不是iPhone/iOS的。这将取消进行动态检查和要求以避免首次刷新呼叫的要求。没有使用meta标记
var iOS = false,
p = navigator.platform;
if(p === 'iPad' || p === 'iPhone' || p === 'iPod'){//remove which is not your target
iOS = true;
}
if(!iOS){
window.setTimeout(function(){window.location.href=window.location.href},30000); //30 Seconds
}
我明白你的意思,但我不确定如何实现它。我之前使用过stringByEvaluatingJavaScriptFromString,但不能更改或删除值。 – Chase
你应该能够将上面的单行代码复制粘贴到stringByEvaluatingJavaScriptFromString中,并且这将从HTML页面中删除坏元标记。 –
所以这就是我所拥有的。它不工作。我不确定我是否对报价做了正确的转义序列。 (myStringByEvaluatingJavaScriptFromString:@“var metaTags = document.getElementsByTagName(\”META \“); for(var i = 0; i
Chase