首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome扩展选项菜单不能关闭

Chrome扩展选项菜单不能关闭
EN

Stack Overflow用户
提问于 2015-01-04 06:31:27
回答 1查看 175关注 0票数 0

我已经构建了一个chrome扩展,其中有一个~settings.html~选项菜单,以及一个选项页面的~option.js~,在选项页面中,当提交保存按钮时,我已经设置了一些逻辑来关闭选项弹出。但出乎意料的是,它成功了一次。附加密码,帮助我了解你的智慧。

代码语言:javascript
复制
{ //manifest.json
"name": "Demo Mode",
"version": "1.0",
"description": "A plugin todo something.",
"icons": {"16":"images/logo16x16.png",
    "48":"images/logo48x48.png"

},
"permissions": ["declarativeWebRequest", "storage", "<all_urls>"],
"options_page": "settings.html",
"background": {
    "scripts": ["background.js"],
    "persistent": true
},
"options_ui": {
    "chrome_style": true,
    "page": "settings.html"
},
"manifest_version": 3,
"browser_action": {

    "default_icon": {
        "19": "images/logo19x19.png",
        "38": "images/logo38x38.png"
    },

    "default_title": "Plugin",
    "default_popup": "settings.html"

}
}

options.js

代码语言:javascript
复制
// Saves options to chrome.storage
function save_options() {
   var server_setting = document.getElementById('server-settings').value;
   chrome.storage.sync.set({
    serverSetting: server_setting
   }, function() {
    // Update status to let user know options were saved.
    var status = document.getElementById('status');
    status.textContent = "Your setting is saved"
    setTimeout(function() {
        status.textContent = '';
        chrome.extension.getBackgroundPage().chrome.runtime.reload();
        window.close();
    }, 1000);
});
}

// Restores select box and checkbox state using the preferences
// stored in chrome.storage.
function restore_options() {
chrome.storage.sync.get({
    serverSetting: 'production'
}, function(items) {
    document.getElementById('server-settings').value = items.serverSetting;
});
}
document.addEventListener('DOMContentLoaded', restore_options);
document.getElementById('save').addEventListener('click', save_options);

settings.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head><title>CMC Plugin Settings</title>
<style>
    .main-pane {
        clear: both;
        min-height: 40px;
    }

    .row {
        display: block;
        box-sizing: border-box;
        padding: 10px 5px;
    }

    .right-align {
        float: right;
        margin-bottom: 20px;
    }

    #status{
        min-height: 22px;
    }

    #server-settings {
        width: 100%;
        margin-top: 10px;
    }
</style>
</head>
<body>


<div class="main-pane">
<div class="row">
    <div class="main-pane">
        <label class="label">Set your environment - </label>
        <select id="server-settings" style="width:100%;">
            <option value="production">Production</option>
            <option value="local">Local Development</option>
        </select>

        <p id="status"></p>
    </div>
</div>
<div class="row">
    <button id="save" class="right-align">Save</button>
</div>
</div>


<script src="options.js"></script>
</body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 08:18:15

通过移除

代码语言:javascript
复制
chrome.extension.getBackgroundPage().chrome.runtime.reload();

代码语言:javascript
复制
chrome.runtime.reload();
window.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27763066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档