如何从chrome扩展程序popup.html中重新加载当前选项卡?

wan*_*now 6 html javascript jquery google-chrome-extension page-refresh

我试图点击按钮刷新Chrome扩展程序中的当前页面.

(注意:原因是因为我加载了一个脚本,我需要刷新页面,因为目前我只是有一个免责声明"你需要刷新页面才能工作",但我想删除这个免责声明并且只是拥有它自动完成).

我无法弄清楚.这是我试图刷新页面的代码.如果你知道一种消除这些代码的方法,并且只使用一个非常好的onclick,但是我尝试了onclick="location.reload();"但它不起作用,因为它不是获取实际的选项卡而只是弹出页面.

background.html

chrome.browserAction.onClicked.addListener(function (activeTab) {
    var newURL = toggleDevMode(activeTab.url);
    chrome.tabs.update({
        url: refresh
    });
});
Run Code Online (Sandbox Code Playgroud)

refresh.js

document.getElementById("mydivtoclicky").onclick = function() {
    chrome.tabs.getSelected(null, function(tab) {
        tabId = tab.id;

        // send a request to the background page to store a new tabId
        chrome.runtime.sendMessage({type:"new tabid", tabid:tabId});
    });
};

chrome.runtime.sendMessage({type:"refresh"});
Run Code Online (Sandbox Code Playgroud)

popup.html

<head>
    <script type="text/javascript" src="../refresh.js"></script>
</head>
<body>
    <div id="mydivtoclicky">REFRESH PAGE</div>
</body>
Run Code Online (Sandbox Code Playgroud)

请帮助谢谢.

wOx*_*xOm 9

要刷新页面,请使用带有选项卡URL的chrome.tabs.update.

refresh.js:

document.getElementById("mydivtoclicky").onclick = function() {
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        chrome.tabs.update(tabs[0].id, {url: tabs[0].url});
    });
};
Run Code Online (Sandbox Code Playgroud)


Shi*_* Su 7

假设您要从扩展后台运行时刷新用户在当前Chrome窗口中使用的选项卡,您可以在background.html/background.js中使用以下示例.

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
  chrome.tabs.reload(tabs[0].id);
});
Run Code Online (Sandbox Code Playgroud)

有关chrome.tabs.reload的更多信息.


小智 6

我的Chrome扩展程序使用chrome.tabs.reload()和所有默认设置正确地重新加载了活动标签。很简单的。弹出窗口本身保持打开状态。

在popup.js中...

function reloadMainTab() {
    chrome.tabs.reload();
}
document.getElementById('reloadBtn').addEventListener('click', reloadMainTab);
Run Code Online (Sandbox Code Playgroud)