2012-07-16 88 views
0

我在尝试制作一个Chrome扩展程序,它可以获取当前网页的网址,并使用它来创建并显示通过以下Google API链接到的QR代码。如何在扩展的弹出窗口中显示网址的内容?

这是我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。

回答

0

当汤姆说,清单版本2,你不能有内嵌脚本。另外,chrome.tabs.getSelected已斩首,您应该使用chrome.tabs.query
这里的东西,让你开始....

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" 
    ] 
} 

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; 
0

首先,你写“manifest_version”:2,不允许内嵌script.Second,弹出式窗口的代码应该这样写

chrome.tabs.getSelected(null,function(tab) { 
var tablink = tab.url; 
document.write('https://chart.googleapis.com/chart?chs=100x100&cht=qr&chl=' + tablink); 
}); 
相关问题