2012-07-16 84 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); 
}); 
相關問題