javascript - 如何在后台脚本中创建元素?

标签 javascript google-chrome-extension

我在后台脚本中执行此操作:

var link = document.createElement('div');

那么链接为空。我猜这是因为扩展后台页面没有 DOM,或者我无权访问它? 无论如何,我需要这个来复制到剪贴板。这是我尝试使用它的部分:

function selectionOnClick(info, tab) {
    var link = document.createElement('div');
    var range = document.createRange();

    link.innerHTML = ShortURL(info.selectionText);
    range.selectNode(link);

    window.getSelection().addRange(range);

    try {
        var successful = document.execCommand('copy');
        if (!successful) {
            alert("Your browser doesn't support copy to clipboard.");
        }
    } catch(err) {
        alert("Your browser doesn't support copy to clipboard.");
    }

    window.getSelection().removeAllRanges();
    link.parentNode.removeChild(link);
}

chrome.contextMenus.create({'title': 'Short selected', 'contexts':['selection'], 'onclick':selectionOnClick});

最佳答案

您已创建该节点,但尚未将其附加到任何内容。将其附加到正文:

document.getElementsByTagName('body').appendChild(link);  

关于javascript - 如何在后台脚本中创建元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42134888/

相关文章:

javascript - 访问 Javascript 数组中的运算符

javascript - 使用 Ember.js 自动完成

javascript - 只想在我的选项卡中使用 css 而不是 js 和查询

javascript - 来自 Chrome 扩展程序的多个 Web 服务调用

javascript - 使用 jQuery/JS 从 div 获取所有颜色

javascript - 每个对象都是一个函数,每个函数都是对象——哪个是正确的?

linux - 清除 Google Secure Shell 中的终端屏幕

javascript - 如何修复 chrome 扩展程序中的 'Chrome Content Security Policy Directive'

javascript - Chrome 扩展选项不调用 javascript 文件

javascript - 将 Angular.js 应用于 Chrome 扩展内容脚本中的新 DOM 元素