2014-03-14 81 views
1

我試圖做一個擴展,使一個新的標籤打開到一個新的頁面加載特定的URL。我想我應該從學習如何創建一個新標籤開始。我的代碼如下。爲什麼我的Chrome擴展程序代碼未打開新選項卡?

的manifest.json

{ 
    "manifest_version": 2, 

    "name": "name", 
    "description": "desctiption", 
    "version": "1.0", 

    "permissions": [ 
    "tabs", 
    "<all_urls>" 
    ], 
    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "background" : { 
    "page" : "background.html", 
    "persistent" : false 
    } 
} 

//something.js 
function createTab() { 
    chrome.tabs.create({url: "http://www.stackoverflow.com"}); 
} 

<!--background.html--> 
<html> 
    <head> 
    <body> 
     <script src="something.js"></script> 
     <a href="#" onclick="createTab();">Create a new tab</a> 
    </body> 
    </head> 
</html> 

回答

2

內聯函數createTab()因爲JavaScript and HTML must be in separate files從不執行和內嵌的語句是不允許的。

相反,綁定到您的JS文件中的事件並將您的標記移動到元素下面。

例如,HTML:

<body> 
    <a id="myHREF">Create a new tab</a> 
    <script src="popup.js"></script> 
</body> 

而JavaScript:

function createTab() { 
    chrome.tabs.create({ 
     url: "http://www.stackoverflow.com" 
    }); 
} 

document.getElementById("myHREF").onclick = createTab; 
+0

我覺得OP提到,HTML和JS都已經在不同的文件 – sachinjain024

+0

注意background.html和something.js並在background.html中包含something.js以顯示它。不是嗎? – sachinjain024

+0

我正在談論內聯語句「createTab();」。這不會發射。 –

相關問題