2017-02-09 2 views
0

Я делаю это в фоновом скрипте:Как создать элемент в фоновом скрипте?

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

ответ

1

Вы создали узел, но не добавлять это ни к чему. Приложите его к телу:

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

просто сделать «ссылку» переменную глобальной затем инициализировать его внутри функции ..

var link = null; 

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