我想知道如何在iOS 7移動Safari中獲取相當於$(window).blur
事件。我希望這可以用於檢測選項卡何時不再在屏幕上。這已被問幾次(Detect moving to a new tab in Mobile Safari),但是,所有的答案或者不再起作用,或者只給出$(window).focus
事件,而不是$(window).blur
事件。另外,關於safari會關閉$(window).blur
嗎?如何檢測移動到移動Safari中的新選項卡
回答
每這篇文章:http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review
頁能見度API的-webkit前綴在iOS 7,檢測時,我們的標籤去前臺和後臺。 XMLHttpRequest 2.0規範完全兼容意味着現在我們可以請求'blob'作爲響應。視頻軌道API已經很快覆蓋,它允許我們查詢和瀏覽任何媒體元素上的所有軌道和內容。
實現其基本演示的相關代碼如下所示;希望你能適應它以適應你的要求。這是一個很好的例子,因爲它不僅告訴你如何捕捉狀態變化,但它也顯示瞭如何將visibilityChanged
事件過程中請求數據:
var eventName = "visibilitychange";
if (document.webkitHidden != undefined) {
eventName = "webkitvisibilitychange";
document.write("<h2>webkit prefix detected</h2>");
} else if (document.mozHidden != undefined) {
eventName = "mozvisibilitychange";
document.write("<h2>moz prefix detected</h2>");
} else if (document.msHidden != undefined) {
eventName = "msvisibilitychange";
document.write("<h2>MS prefix detected</h2>");
} else if (document.hidden != undefined) {
document.write("<h2>standard API detected</h2>");
} else {
document.write("<h2>API not available</h2>");
}
function visibilityChanged() {
var h4 = document.getElementsByTagName("h4")[0];
if (document.hidden || document.mozHidden || document.msHidden || document.webkitHidden) {
h4.innerHTML += "<br>Hidden at " + Date().toString();
var ajax = new XMLHttpRequest();
ajax.open("GET", "sleep.php?" + Math.random(), true);
ajax.onreadystatechange = function() {
if (ajax.status == 200 && ajax.readyState == 4) {
h4.innerHTML += "<br>AJAX Async at " + Date().toString();
}
}
ajax.send(null);
var ajaxs = new XMLHttpRequest();
ajax.open("GET", "sleep.php?" + Math.random(), false);
ajax.send(null);
h4.innerHTML += "<br>AJAX Sync at " + Date().toString();
setTimeout(function() {
h4.innerHTML += "<br>Timer at " + Date().toString();
}, 3000);
} else {
h4.innerHTML += "<br>Shown at " + Date().toString();
}
}
document.addEventListener(eventName, visibilityChanged, false);
window.onpageshow = function() {
h4.innerHTML = "<br>Page show at " + Date().toString();
};
window.onpagehide = function() {
h4.innerHTML = "<br>Page hide at " + Date().toString();
};
如果你想測試一下你的設備上,這裏是現場演示:http://mobilexweb.com/ts/api/page.html
當標籤丟失並重新獲得焦點時,您會看到日誌寫入頁面。
看起來像這樣會適合我!謝謝! (由於SO的時間限制,賞金將在3小時內頒發) –
當然可以!別擔心。我遇到了一段時間後背自己,這是一場鬥爭,然後發現那篇文章。 – brandonscript
- 1. 如何檢測移動設備移動?
- 2. Titanim移動選項卡組
- 3. 移動到其他選項卡
- 4. 如何移動到ASP.NET中特定的選項卡視圖?
- 5. 如何檢測移動Safari全球定位旋轉動畫
- 6. 如何檢測ios 7中的移動Safari瀏覽器?
- 7. 如何移動選定的項目移動到列表
- 8. Safari將TD移動到移動的新行
- 9. 如何在移動Safari HTML文檔中觸發地址檢測?
- 10. WKWebview未檢測到移動
- 11. 如何檢測移動Safari添加的tel:鏈接?
- 12. 如何檢測移動Safari何時關閉?
- 13. 如何從移動版Safari
- 14. bootstrap選項卡作爲移動設備的選項卡
- 15. 移動到該選項卡中的選項卡和特定位置
- 16. c#移動到選項卡控件中的下一個選項卡
- 17. Sitecore移動檢測
- 18. PHP移動檢測
- 19. 打開新選項卡而不移動到它
- 20. 當我移動到另一個選項卡時,如何在android
- 21. 在移動Safari
- 22. 在移動Safari
- 23. 移動到SD卡
- 24. 移動到SD卡
- 25. 移動到SD卡
- 26. 爲組合框選擇一個選項後要移動到新選項卡
- 27. 選項卡指示器在滑動時不移動,但在選擇時移動
- 28. 在移動Safari中的多個選擇
- 29. Flex移動選項卡不工作
- 30. 在窗體上移動自定義選項卡/子選項卡
[這是瞭解更多關於focusin/focusout和blur事件的好頁面。](http://www.quirksmode.org/dom/events/blurfocus.html)< - 點擊鏈接! – Mike
[這是另一個很好的頁面](http://output.jsbin.com/rinece),用於查看發生了什麼事件。不同的事件發生在不同的瀏覽器/版本/操作系統/ UIWebView。 – robocat