簡體   English   中英

如何將瀏覽器焦點從一個標簽更改為另一個標簽

[英]How to change browser focus from one tab to another

我有一個JavaScript聊天客戶端在一個瀏覽器選項卡中運行(稱之為選項卡A)。 現在,當消息到達時,用戶可能在另一個瀏覽器選項卡上(稱為選項卡B)。 當這樣的消息到來時,我正在尋找將焦點從標簽B更改為聊天客戶端(標簽A)的方法。

我找不到辦法做到這一點。

這是不可能的-出於安全考慮。

除非 “tab”表示一個窗口和一個彈出窗口(由於瀏覽器首選項)在新選項卡中打開。 如果是這種情況,那么你可以。

//focus opener... from popup
window.opener.focus();

//focus popup... from opener
yourPopupName.focus(); 

可以通過標簽A中的警報將焦點移回標簽A,例如警報('新消息')

但是,你需要小心使用它,因為它很可能會惹惱人們。 只有在應用程序中將其設為可選項時,才應使用它。 否則,更新標簽A的標題和/或圖標似乎是最好的,因為nc3b說。

你最好的可能是改變頁面的標題,提醒用戶選項卡需要注意(也許還有favicon - 看看meebo是怎么做的,它真的很討厭但很有效)

這對我來說在表單提交時重新打開目標窗口..所以它會在同一個目標上調用window.open(如果更改則調用new),然后繼續提交表單。

  var open_target = function (form){ var windowName = jQuery(form).attr('target'); window.open("", windowName ); return true; }; 
  <form target="_search_elastic" onsubmit="return open_target(this);"> </form> 

Chrome和Firefox現在都有通知。 我認為通知可能是一種更加用戶友好的方式來提醒用戶您的應用上發生了某些變化,而不是彈出警報並強制他們進入您的頁面。

使用Javascript,觸發警報可以產生預期的效果。 在控制台中運行此代碼,或在一個選項卡中添加到html文件,然后切換到同一瀏覽器中的另一個選項卡。

setTimeout(function(){ 
    alert("Switched tabs");
}, 
5000);

超時后出現的警報將觸發標簽切換。 或者你可以做類似的事情! 但是,出於UX原因,您仍然可以在頁面標題((1)Facebook)中使用Facebook的消息計數器中的ping或添加和指示符。 您還可以嘗試使用Notifications API (實驗性)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM