2017-02-09 6 views
0

Ich tue dies im Hintergrund Skript:Wie erstelle ich ein Element im Hintergrundskript?

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

Dann Link null ist. Ich denke, weil die Hintergrundseite der Erweiterungen kein DOM hat, oder habe ich keinen Zugriff darauf? Wie auch immer, ich brauche das, um die Kopie in die Zwischenablage zu kopieren. Hier ist ein Teil, wo ich versuche, es zu verwenden:

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

Antwort

1

Sie haben den Knoten erstellt, aber noch nicht anhängen zu allem. An den Körper anhängen:

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

machen nur die „link“ Variable global initialisieren es dann innerhalb der Funktion ..

var link = null; 

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