2012-10-15 66 views

回答

1

這是正常的,看着forge.message.broadcast定義:

forge.message.broadcast = function (r, s, t, q) { 
    chrome.windows.getAll({ 
     populate: true 
    }, function (u) { 
     u.forEach(function (v) { 
      v.tabs.forEach(function (x) { 
       if (x.url.indexOf("chrome-extension:") != 0) { 
        var w = chrome.tabs.connect(x.id); 
        if (t) { 
         w.onMessage.addListener(function (y) { 
          t(y) 
         }) 
        } 
        w.postMessage({ 
         type: r, 
         content: s 
        }) 
       } 
      }) 
     }) 
    }); 
    var p = chrome.extension.connect(); 
    if (t) { 
     p.onMessage.addListener(function (u) { 
      t(u) 
     }) 
    } 
    p.postMessage({ 
     type: r, 
     content: s 
    }) 
} 

forge.message.broadcast將嘗試將消息發送到每個打開的選項卡。它只會過濾出chrome-extension的網址,因此它也會嘗試發送任何打開的developer-tools窗口。但是,如果選項卡上沒有監聽器,則可能會收到「端口錯誤:無法建立連接,接收端不存在」。 Chrome瀏覽器中的每個此類標籤都會出現錯誤 - 這是預期的,並且如果是,您不希望它們響應forge.message.broadcast消息。

如果您確實希望他們做出迴應,您必須先在之前在適當的選項卡中使用forge.message.listen

相關問題