[英]Disable HTML auto-refresh?
客戶的網站有一個自動刷新功能,非常適合桌面網站,但我正在制作一個 iPhone 應用程序,需要在移動版本上禁用它。
使用的代碼是:
<META HTTP-EQUIV="REFRESH" CONTENT="30">
如果可能,我想使用 javascript 來禁用它。
謝謝。
編輯:我無權訪問 HTML 文件,因此無法修改它。 我需要通過 Xcode 中 Objective-C 端的代碼來做到這一點。
我將介紹一些簡單的東西
添加帶有 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一旦加載就無法禁用的發起請求!! 同樣,可以在用戶XP1
給出的Old Post
答案中找到解決方法
以上是使用xmlhttp requrest(AJAX)在加載文檔之前檢查並刪除元標記,如果設備是目標設備(iphone)
要么
可以使用動態刷新標識設備不是 iPhone/iOS。 這將消除進行動態檢查和避免首次刷新調用的要求。 不使用元標記
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 = () => {}
更長的答案:大多數瀏覽器支持對刷新網頁的功能進行一些修改。 這里的一個是在 Chrome 上測試的。
免責聲明:這將完全刪除給定頁面的頁面重新加載功能。
假設您使用 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 頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.