2011-02-18 39 views
2

我正在致力於快速登錄頁面,以訪問同一臺服務器上的許多小型移動優化應用程序。基本上是儀表板模式。我希望將它放在主屏幕上,以便我可以以全屏模式訪問任何應用程序,而不必使用工具欄大小的移動Safari。但是,當我點擊一個鏈接時,它會將我從全屏模式轉換到Safari - 正是我不想要的。在iOS中使用鏈接全屏Web應用程序

有沒有一種方法(例如,使用錨點的target屬性)在導航到其他頁面時保持全屏模式?或者我應該把所有東西都扔進?

回答

5

您需要使用一些javascript攔截onclick事件。例如,這裏就是iWebKit確實與應用於<a>標籤noeffect CSS類:

window.onload = function() { 
    function fullscreen() { 
     var a = document.getElementsByTagName("a"); 
     for (var i = 0; i < a.length;i++) { 
      if (a[i].className.match("noeffect")) { 
       // Does nothing 
      } 
      else { 
       a[i].onclick = function() { 
        window.location = this.getAttribute("href"); 
        return false; 
       }; 
      } 
     } 
    } 
}; 
+0

是的,我想到了這一點。但謝謝你的答案!很高興在那裏。我對框架,形式和事件做了更多的實驗,所以我也應該把這些結果也放在這裏。 – theazureshadow 2011-03-25 20:55:31

3

每當onclick發生在移動Safari瀏覽器,Safari就會把它拿出來的全屏模式。表格提交將保持全屏模式,無論是POST還是GET。如果window.location通過javascript設置,它也將保持全屏模式。

我更喜歡委派在每個錨上設置一個事件處理程序。這裏有一個jQuery示例:

$(window).click(handleClick); 

function handleClick(e) { 
    var target = $(e.target).closest('a'); 
    if(target) { 
     e.preventDefault(); 
     window.location = target.attr('href'); 
    } 
} 
+0

+1與循環遍歷所有錨並將事件偵聽器手動添加到每個錨都相比,委託更有效,乾淨並且可重用。 – 2012-07-22 03:53:27

相關問題