2014-08-30 29 views
0

這是我的代碼從我background.js:如果語句不工作 - 瀏覽器擴展程序

chrome.webNavigation.onCompleted.addListener(function(o) { 
    chrome.tabs.executeScript(o.tabId, { 
     file: "test.js" 
    }); 
}, { 
    url: [ 
    {hostContains: 'google.com'} 
    ] 
}); 

我現在想要的是一個if語句的權利,其中test.js被調用。事情是這樣的:

如果== B,則執行該行「文件:‘test.js’」 別的什麼也不做

我試過,但沒有奏效:

chrome.webNavigation.onCompleted.addListener(function(o) { 
    chrome.tabs.executeScript(o.tabId, { 
     if (a == b) { 
      file: "test.js" 
     } 

    }); 
} 

任何人都知道我做錯了什麼?謝謝 !

+0

什麼是'了'?什麼是'b'? – PeeHaa 2014-08-30 13:20:47

+0

var a = 1; var b = 1; – larsklaus 2014-08-30 13:21:38

+4

你不能在對象文字中使用'if'語句。 – 2014-08-30 13:21:49

回答

3

不能在對象文本中使用if語句。這根本就是無效的語法。一種可能的解決辦法是通過基於條件的不同對象:

chrome.webNavigation.onCompleted.addListener(function(o) { 
    chrome.tabs.executeScript(o.tabId, (a == b) ? { file: "test.js"} : {}); 
} 
0

的executeScript函數的第二個參數需要一個InjectDetails https://developer.chrome.com/extensions/tabs#type-InjectDetails對象,你不能把一個if語句在那裏。

你可以有if語句返回一個對象文本,如

chrome.webNavigation.onCompleted.addListener(function(o) { 
    chrome.tabs.executeScript(o.tabId, 
    if (a == b) return { 
     file: "test.js" 
    } 
    ); 
} 
+0

好吧,@ benjamin-gruenbaum有一個更好的語法:) – 2014-08-30 13:33:37

相關問題