javascript - 使用 shadow DOM 注入(inject) chrome 扩展 UI

标签 javascript html css google-chrome google-chrome-extension

我对 HTML 和完整的网络世界开发还很陌生。我正在尝试创建一个 chrome 扩展,并决定在单击浏览器操作时通过注入(inject)内容脚本向用户显示扩展 UI。我已经为要显示的 UI 创建了一个 HTML 页面,现在我需要将这个 HTML 页面作为一个小部件加载到当前页面右上角的某处(看起来像一个弹出窗口)。从互联网上查找的不同内容来看,我决定使用影子 DOM,但不知道如何做这一切。有人可以帮我提供示例代码来帮助我继续吗?我无法编写将用作内容脚本来完成上述工作的 javascript。


编辑 1:经过更多阅读,我发现我们需要使用 javascript 创建元素层次结构,不能直接使用任何已创建的 HTML 页面。那是对的吗?如果我们必须使用 javascript,是否应该使用对 document.createElement 的调用并添加元素?还是 document.write?

最佳答案

只是从我在这个线程中得到的回复中编译引用:


我的 Background.js:

function hello() {
    chrome.tabs.executeScript(null, { file: "injectedScripts/jquery-2.1.3.min.js" }, function () {
        chrome.tabs.executeScript(null, { file: "injectedScripts/a.js" });
    });
}

// Supposed to Called when the user clicks on the browser action icon.
chrome.browserAction.onClicked.addListener(hello);

注入(inject)脚本 a.js:

$.get(chrome.extension.getURL("popup.html"), function (data) {
    //$(data).appendTo('body');
    // Or if you're using jQuery 1.8+:
    $($.parseHTML(data)).appendTo('body');
});

还在 manifest.json 中添加了 popup.htmla.jsweb_accessible_resources 的路径

关于javascript - 使用 shadow DOM 注入(inject) chrome 扩展 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28809381/

相关文章:

JavaScript 从字符串中删除尾随空格和句点

javascript - 下拉列表可以输入新值而不是列表

javascript - 网页游戏开发的层次结构

jquery - 如何绑定(bind)图像宽度以滚动特定高度?

javascript - 如何拖放到 html 无序列表中

javascript - JavaScript 函数的类型

javascript - 滚动时更改 Logo div 背景颜色

html - 在输入 :focus using only css 上显示另一个容器

html - CSS 首字母高亮显示

html - 带导航的三列标题