禁用HTML自动刷新?

时间:2011-10-19 21:17:35

标签: javascript html iphone refresh

客户的网站具有自动刷新功能,适用于桌面网站,但我正在制作iPhone应用程序并需要在移动版本上禁用它。

使用的代码是:

<META HTTP-EQUIV="REFRESH" CONTENT="30">

如果可能的话,我想使用javascript来禁用它。

感谢。

编辑: 我无法访问HTML文件,因此无法修改它。我需要通过Xcode中Objective-C端的代码来完成这项工作。

3 个答案:

答案 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 上进行了测试。

免责声明:这将完全删除给定页面的页面重新加载功能。