我拼命試圖做一個鉻擴展,應該保存鏈接標題到數據庫。爲此,我創建了以下JavaScript文件:getAttribute除了getElementsByTagName不能在一個擴展的鉻擴展js腳本
mysu.js
var linkTitle;
window.addEventListener('load', function() {
var urls= document.querySelectorAll('a.url');
for(i=0,len=urls.length;i<len; i++) {
urls[i].addEventListener('click', function() {
chrome.tabs.create({url: this.href});
}, false);
}
var a=document.getElementsByTagName('a');
for (i=0,len=a.length;i<len;i++) {
a[i].addEventListener('contextmenu', function() {
var tmpThis = this;
var tmpTitle = tmpThis.getAttribute('title').trim();
alert(tmpTitle);
var tmpText = tmpThis.textContent.trim();
var tmpImg = tmpThis.childNodes('img').firstChild;
if ((tmpTitle != null) && (tmpTitle.length > 0)) {
linkTitle = tmpTitle;
} else if ((tmpText != null) && (tmpText.length > 0)) {
linkTitle = tmpText;
} else if (tmpImg != null) {
linkTitle = tmpImg.getAttribute("alt");
}
});
};
}, false);
chrome.contextMenus.create({'title': 'Add to mySU bookmarks', 'contexts': ['link', 'page'], 'onclick': mySUBookmark});
function mySUBookmark() {
alert(linkTitle);
}
當然,我試圖用警惕調試()第一。但是,無論我做什麼,我都會得到一個未定義的。我試圖從另一個我知道這樣做的擴展中複製這種行爲。我錯過了什麼?
問候,
K.
PS:以下是我的清單文件,在情況下,它可以幫助:
manifest.json的
{
"name" : "mySU",
"description" : "mySU",
"browser_action": {
"default_icon": "images/mysu.png",
"default_popup": "html/mysu.html",
"default_title": "Select page to navigate to..."
},
"permissions": [
"tabs",
"contextMenus",
"storage",
"http://mysu.sabanciuniv.edu/*",
"http://*.sabanciuniv.edu/*"
],
"background": {
"scripts": ["js/mysu.js"]
},
"icons": {
"128": "images/mysu.png"
},
"version": "1.0",
"minimum_chrome_version": "9",
"manifest_version": 2
}
這是什麼執行上下文?你可以發佈你的manifest.json嗎? – Xan
@Xan我更新了我的問題。 –