Windows 10 Pro
Google Chrome ver.81 および Microsoft Edge ver.81
右クリックで実行する処理の際に、ページ上の以下の hidden の値を取得する処理を作成しました。
html
1<input type='hidden' name="customer_id" value='1234' />
このページは、javascriptの「window.open()」で開かれているページで、「customer_id」が異なるページが同時にいくつも開いています。以下が作成したものです。ページが1つだけの時はうまくいきます。3つも4つも開かれたときは、うまくいったりいかなかったりまちまちです。右クリックを実行したページの hidden の値を確実に取得したいと思っております。
json
1{ 2//manifest.json 3 "name": "顧客ID取得", 4 "version": "1.0", 5 "icons": { 6 "19" : "img/icon19.png", 7 "32" : "img/icon32.png", 8 "38" : "img/icon38.png", 9 "48" : "img/icon48.png", 10 "128": "img/icon128.png" 11 }, 12 "description": "顧客IDをクリップボードにコピーします", 13 "background" : { 14 "scripts" : ["js/background.js"] 15 }, 16 "content_scripts":[{ 17 "matches":["https://hogehoge.com/*"], 18 "js":["js/content.js"] 19 }], 20 "permissions" : ["contextMenus", "https://hogehoge.com/*"], 21 "author": "Hoger", 22 "manifest_version": 2 23}
javascript
1//content.js 2chrome.runtime.sendMessage({ 3 value: document.getElementsByName('customer_id')[0].value 4});
javascript
1//background.js 2var customer_id = ''; 3 4chrome.runtime.onMessage.addListener( 5 function (request, sender, sendResponse) { 6 customer_id = request.value; 7 } 8); 9 10const parent_menu = chrome.contextMenus.create({ 11 type: "normal", 12 id: "hoge", 13 title: "顧客関連" 14}); 15chrome.contextMenus.create({ 16 id : "hoge1", 17 parentId: parent_menu, 18 title : "顧客コードコピー", 19 type : "normal", 20 contexts : ["all"] 21}); 22 23chrome.contextMenus.onClicked.addListener((info, tab) => { 24 switch(info.menuItemId){ 25 case 'hoge1': 26 copyTextToClipboard(customer_id); 27 break; 28 default: 29 } 30}); 31 32/* 33クリップボードにコピーする 34*/ 35function copyTextToClipboard(textVal){ 36 var copyFrom = document.createElement("textarea"); 37 copyFrom.textContent = textVal; 38 var bodyElm = document.getElementsByTagName("body")[0]; 39 bodyElm.appendChild(copyFrom); 40 copyFrom.select(); 41 var retVal = document.execCommand('copy'); 42 bodyElm.removeChild(copyFrom); 43 return retVal; 44}
よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。