我正在致力於快速登錄頁面,以訪問同一臺服務器上的許多小型移動優化應用程序。基本上是儀表板模式。我希望將它放在主屏幕上,以便我可以以全屏模式訪問任何應用程序,而不必使用工具欄大小的移動Safari。但是,當我點擊一個鏈接時,它會將我從全屏模式轉換到Safari - 正是我不想要的。在iOS中使用鏈接全屏Web應用程序
有沒有一種方法(例如,使用錨點的target
屬性)在導航到其他頁面時保持全屏模式?或者我應該把所有東西都扔進?
我正在致力於快速登錄頁面,以訪問同一臺服務器上的許多小型移動優化應用程序。基本上是儀表板模式。我希望將它放在主屏幕上,以便我可以以全屏模式訪問任何應用程序,而不必使用工具欄大小的移動Safari。但是,當我點擊一個鏈接時,它會將我從全屏模式轉換到Safari - 正是我不想要的。在iOS中使用鏈接全屏Web應用程序
有沒有一種方法(例如,使用錨點的target
屬性)在導航到其他頁面時保持全屏模式?或者我應該把所有東西都扔進?
您需要使用一些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;
};
}
}
}
};
每當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');
}
}
+1與循環遍歷所有錨並將事件偵聽器手動添加到每個錨都相比,委託更有效,乾淨並且可重用。 – 2012-07-22 03:53:27
是的,我想到了這一點。但謝謝你的答案!很高興在那裏。我對框架,形式和事件做了更多的實驗,所以我也應該把這些結果也放在這裏。 – theazureshadow 2011-03-25 20:55:31