2016-04-16 156 views
1

當我運行我的代碼時,它提出了「關於空白」而不是我的擴展選項。我希望它在擴展前打開選項。下面是我的一些擴展的代碼 -從彈出窗口打開Chrome選項

popup.js:

document.getElementById('div_options').onclick = openOps; 
function openOps() { 
     window.open("chrome://extensions/?options=pgapbgeppkbeghldobmjehpbdleapdip"); 
     closeAndReloadPopup(); 
    }; 

popup.html:

<li> 
    <a href="#"><div id="div_options">Options</div></a> 
</li> 

manifest.json的:

{ 
"background": { 
     "page": "background.html" 
    }, 
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", 
"page_action": { 
      "default_icon": { 
      "19": "images/icon19.png", 
      "38": "images/icon38.png" 
      }, 
      "default_title": "Scratch theme loader", 
      "default_popup": "popup.html" 
     }, 
"options_ui": { 
      "page": "options.html", 
      "chrome_style": true 
     }, 
"web_accessible_resources": ["src/options/options.html"], 
    "permissions": [ 
     "tabs", 
     "storage", 
     "declarativeContent", 
     "https://scratch.mit.edu/*", 
     "https://pastebin.com/raw/*" 
    ] 
} 

options.html:

<html> 
    <stuff> 
</html> 
+0

一般情況下,不要在擴展使用'window.open'。依靠'chrome.tabs'和'chrome.windows',創建不需要權限。 – Xan

回答

2

推薦的使用方法:chrome.runtime.openOptionsPage(callback)

打開您的擴展選項頁,如果可能的話。 的確切行爲可能取決於您的清單的options_ui或options_page鍵,或Chrome在當時支持的內容。例如,該頁面可能是 ,在應用內的chrome:// extensions內的新選項卡中打開,或者 可能只是關注打開的選項頁面。它永遠不會導致呼叫者頁面重新加載 。如果您的擴展程序未聲明選項頁面,或由於其他原因導致Chrome未能創建一個選項頁面,則回調將 設置爲lastError。

https://developer.chrome.com/extensions/runtime#method-openOptionsPage

另外,chrome.tabs.create({ url: "chrome://extensions/?options=" + chrome.runtime.id }, callback)chrome.tabs.create({ url: "options.html" }, callback)

+0

謝謝,當我添加一些更多的回調函數時,這工作得很好。 – Melkor

相關問題