0

現在のページの URL を取得し、それを使用して、以下の Google API にリンクする QR コードを作成して表示する Chrome 拡張機能を作成しようとしています。

これは私のpopup.jsです

chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
});

document.write('https://chart.googleapis.com/chart?chs=100x100&cht=qr&chl=' + tablink);

これは私のmanifest.jsonです

{
  "name": "Qrit",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Instantly creates a QR Code that links to the current page.",
  "browser_action": {
    "default_icon": "icon.png",
     "default_popup": "popup.html"
  },
  "permissions": [
    "tabs"
  ]
}

問題は、ポップアップが単に空白であることです。私は Javascript や Json についてほとんど何も知りません。

4

2 に答える 2

0

最初に「manifest_version」を書きます: 2、インライン スクリプトを許可しません。次に、ポップアップ コードは次のように記述します。

chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
document.write('https://chart.googleapis.com/chart?chs=100x100&cht=qr&chl=' + tablink);
});
于 2012-07-16T07:15:10.407 に答える
0

トムが言ったように、マニフェスト バージョン 2 ではインライン スクリプトを使用できません。また、chrome.tabs.getSelected斬首され、使用する必要がありますchrome.tabs.query
ここから始めましょう....

マニフェスト.json

{
  "name": "Qrit",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Instantly creates a QR Code that links to the current page.",
  "browser_action": {
    "default_icon": "icon.png",
     "default_popup": "popup.html"
  },
  "permissions": [
    "tabs"
  ]
}

popup.html

<!DOCTYPE html>
<html>
    <head>
        <script src='popup.js'></script>
    </head>
    <body>
        <div id='message'>Getting Image....</div>
    </body>
</html>

popup.js

function onImageLoad() {
  var message = document.querySelector('#message');
  message.parentNode.removeChild(message);
}

function onImageError(e) {
  var message = document.querySelector('#message');
  message.innerText = 'Error getting image';
  e.srcElement.parentNode.removeChild(e.srcElement);
}

function onWindowLoad() {
  chrome.tabs.query({
    'active': true,
    'windowId': chrome.windows.WINDOW_ID_CURRENT
  }, function(tab) {
    var image = document.createElement('IMG');
    image.src = 'https://chart.googleapis.com/chart?chs=100x100&cht=qr&chl=' + tab[0].url;
    document.body.appendChild(image);
    image.onload = onImageLoad;
    image.onerror = onImageError;
  });
}

window.onload = onWindowLoad;
于 2012-07-16T11:43:08.950 に答える