Javascript 禁用HTML自动刷新?

Javascript 禁用HTML自动刷新?,javascript,html,iphone,refresh,Javascript,Html,Iphone,Refresh,一个客户的网站有一个自动刷新功能,这对桌面网站非常有用,但我正在制作一个iPhone应用程序,需要在移动版上禁用它 使用的代码是: <META HTTP-EQUIV="REFRESH" CONTENT="30"> 如果可能的话,我想使用javascript来禁用它 谢谢 编辑: 我没有访问HTML文件的权限,因此无法修改它。我需要通过Xcode中Objective-C端的代码来实现这一点。假设您使用UIWebView来显示站点,您可以使用[webView stringByEva

一个客户的网站有一个自动刷新功能,这对桌面网站非常有用,但我正在制作一个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”);
对于(var i=0;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]);}}
var metaTags=document.getElementsByTagName(“META”);对于(var i=0;i

编辑:嗯……毕竟,仅仅从文档中删除meta标记是不可能取消现有的刷新请求的。一旦解析器看到meta标记,它将刷新,而不管您使用什么javascript技巧。不幸的是,克服这一问题的唯一方法是直接修改HTML页面。

我将介绍一些简单的方法

添加ID为的标签,如下所示:

 <meta http-equiv="refresh" content="2;http://new-url/" id="meta-refresh">
我相信这会奏效的

此外,一旦加载JavaScript就无法禁用的已启动请求!! 同样,我们可以在用户给出的答案
XP1

上面使用的是XMLHttpRequrest(AJAX)在加载文档之前进行检查,如果设备是目标设备(iphone),则删除meta标记

如果设备不是iPhone/iOS,则可以使用“动态刷新id”。这将消除执行动态检查的要求和避免第一次刷新调用的要求。不使用元标记

 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
 }

简短回答:window.location.reload=()=>{}

详细回答: 大多数浏览器都支持对刷新网页的函数进行一些修改。 这里的那个是用铬做的


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

我明白你的意思,但我不确定如何实现它。我以前使用过stringByEvaluatingJavaScriptFromString,但没有更改或删除值。您应该能够将上面的一行复制粘贴到stringByEvaluatingJavaScriptFromString中,这将从HTML页面中删除错误的元标记。这就是我所拥有的。它不起作用了。我不确定我是否为引号做了正确的转义序列。[myWeb stringByEvaluatingJavaScriptFromString:@“var metaTags=document.getElementsByTagName(\“META”);for(var i=0;i 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 }