2009-02-06 70 views
39

我使用的東西沿着元刷新不起作用?

<meta http-equiv="refresh" content="0;url=http://example.com/" /> 

線,但某些用戶有一定的工作站這不起作用上有一個頁面。在IE中。有沒有錯誤的cookie或設置某處會導致此失敗?我從來沒有聽說過這樣的事情。

+0

格雷格,你應該顯示你的標記的上下文。上面是什麼?它下面有什麼等。 – Sampson 2009-02-06 22:09:42

+0

也許這是一個由無效標記引起的錯誤,它只發生在這臺機器上的某個瀏覽器中。 – Gumbo 2009-02-06 22:10:52

回答

73

的問題是,IE看到這個時:

<meta http-equiv="refresh" content="0;http://www.example.com" /> 

,預計內容屬性包含一個數字。唯一的一次,IE將檢查URL是如果內容屬性包含「URL =」所以這是最可用在所有瀏覽器重定向是這樣的:

<meta http-equiv="refresh" content="0;URL=http://www.example.com" /> 

以上例子將immdetiately重定向,但如果你改變了0代表另一個數字,它會等待幾秒鐘。希望這一切都有道理,它應該工作得很好,但我仍然認爲我的第一個想法是更好的。

0

只是一個瘋狂的猜測:也許有一些adblockers安裝在重定向不起作用的那些機器上。 想不到任何其他原因,爲什麼這種常見的技術在某些機器上工作,而在別人上失敗。

5

它是IE的真正舊版本嗎?如果是,請嘗試:

<meta http-equiv="refresh" content="0;url=http://example.com/"> </meta> 

它需要一個空白區域。 HTML編輯器會抱怨,但只是忽略它。

+1

真的很老,你的意思是IE7?哈哈,這終於爲我工作。謝謝! – guanome 2011-08-31 19:08:30

3

META標記不是空的標記,並且在HTML中沒有結束標記,只能在XHTML中使用。 (如果你真的要發送XHTML,它可能無法在舊版本的IE工作的權利,無論如何,只有送XHTML較舊版本的IE的解決方法。)

嘗試:

<meta http-equiv="refresh" content="0;url=http://example.com/"> 

W3 Schools META Tag Description

您也可以嘗試:

  1. 檢查IE的主要版本和次要版本。您可以在help-> about菜單選項中執行此操作。
  2. IE在歷史上已經被文件名和MIMEtypes所困惑。確保您將HTML發送爲htm或html擴展文件,並且在服務器上設置這些文件類型以發送text/html mimetype。
  3. 確保您的服務器沒有發送衝突的元刷新HTTP標頭。
31

在Internet Explorer中有一個安全設置,不允許元標記刷新。它位於安全選項卡下,然後選擇自定義級別和雜項下的元標記刷新。如果這被禁用,它將停止元刷新工作。

除了能夠選擇性地禁用它,如果您將IE的安全級別設置爲「高」(在IE9中觀察到),它會自動禁用。

+0

絕對正確。在我的情況下,這是確切的解決方案,因爲我正在從Azure虛擬機內訪問IE以用於測試目的。 – julealgon 2014-08-01 14:53:02

0

如果有人試圖使用元刷新重定向到新的URL在Facebook應用程序(無論是頁面標籤的應用程序或IFRAME應用程序),標籤是:它在同一時間處理JavaScript和元刷新以某種方式被Facebook禁用。

解決方法是:

<script> 
top.window.location = 'http://example.com'; 
</script> 

記住爲目標 「頂」,因爲Facebook應用程序都在IFRAME。