客戶的網站具有自動刷新功能,該功能非常適用於桌面版網站,但我正在製作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