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

时间:2017-02-09 11:00:03

标签: 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});

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

只需制作"链接"变量global然后在函数内初始化..

var link = null;

function selectionOnClick(info, tab) {
    link = document.createElement('div');
.
.
.
相关问题