Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在后台脚本中创建元素?_Javascript_Google Chrome Extension - Fatal编程技术网

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

Javascript 如何在后台脚本中创建元素?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我在后台脚本中执行此操作: var link=document.createElement'div' 然后链接为空。我猜这是因为扩展后台页面没有DOM,还是我没有访问权限? 无论如何,我需要这个复制到剪贴板。这里是我尝试使用它的部分: function selectionOnClick(info, tab) { var link = document.createElement('div'); var range = document.createRange(); li

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

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});

只需将链接变量设置为全局变量,然后在函数内部初始化它

var link = null;

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

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

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