2017-02-09 1 views
0

私は、バックグラウンドスクリプトでこれをやっている:バックグラウンドスクリプトで要素を作成する方法は?

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

するとリンクはnullです。エクステンションのバックグラウンドページに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'); 
. 
. 
. 
関連する問題