javascript – addEventListener在chrome扩展中使用时不会触发
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – addEventListener在chrome扩展中使用时不会触发,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3280字,纯文字阅读大概需要5分钟。
内容图文
![javascript – addEventListener在chrome扩展中使用时不会触发](/upload/InfoBanner/zyjiaocheng/802/70f4c533f8144064aa22c0e5b64c21ca.jpg)
我正在尝试制作一个chrome扩展程序,它将搜索给定页面的不同缓存数据库.但是,它没有像我期望的那样工作.
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var x;
var img = document.getElementsByTagName("img");
for(x in img) {
img[x].addEventListener('click',openPage, false);
}
function openPage(event) {
alert("clicked");
var e = event.target;
switch(e.alt) {
case "WayBack Machine":
chrome.tabs.update(tab.id, { url: "http://wayback.archive.org/web/*/" + tab.url });
break;
case "Google Cache":
if(tab.url.substring(0, 5) == "http:")
chrome.tabs.update(tab.id, { url: 'http://webcache.googleusercontent.com/search?q=cache:' + tab.url.substr(7) });
else if(tab.url.substring(0,6) == "https:")
chrome.tabs.update(tab.id, { url: 'http://webcache.googleusercontent.com/search?q=cache:' + tab.url.substr(8) });
break;
case "Yahoo Cache":
// Need the yahoo cache url
break;
case "Bing Cache":
chrome.tabs.update(tab.id, { url: "http://cc.bingj.com/cache.aspx?q=" + tab.url + "&d=4572216504747453&mkt=en-US&setlang=en-US&w=802790a9,218b61b8" });
break;
case "Gigablast":
chrome.tabs.update(tab.id, { url: "http://www.gigablast.com/get?q=" + tab.url + "&c=main&d=70166151696&cnsp=0" });
break;
case "CoralCDN":
chrome.tabs.update(tab.id, { url: tab.url + ".nyud.net" });
break;
default: // Webcite
// Need to send a request, this won't do
chrome.tabs.update(tab.id, { url: "http://webcitation.org/query" });
break;
}
}
</script>
</head>
<body>
<img src="Google Cache.png", alt="WayBack Machine" class="button" id="WayBack Machine" height ="40px" />
<img src="Google Cache.png", alt="Google Cache" class="button" id="Google Cache" height ="40px" />
<img src="Google Cache.png", alt="Yahoo Cache" class="button" id="Yahoo Cache" height ="40px" />
<img src="Google Cache.png", alt="Bing Cache" class="button" id="Bing Cache" height ="40px" />
<img src="Google Cache.png", alt="Gigablast" class="button" id="Gigablast" height ="40px" />
<img src="Google Cache.png", alt="CoralCDN" class="button" id="CoralCDN" height ="40px" />
<img src="Google Cache.png", alt="Webcite" class="button" id="Webcite" height ="40px" />
</body>
</html>
但是,它甚至没有警报();当我在jsfiddle.net中尝试代码时,它的工作原理是:http://jsfiddle.net/RZ2wC/
这是我的manifest.json:
{
"name": "gCache",
"version": "1.1.5",
"description": "View the Google Cache of a page",
"browser_action": {
"default_icon": "icon.png",
"default_text": "Google Cache version of this page",
"default_popup": "cacheList.html"
},
"permissions": [
"tabs"
]
}
任何帮助将不胜感激.关于这个问题以及你在我的代码中看到的任何我还没有得到的错误.非常感谢!
解决方法:
通过右键单击browserAction按钮并选择“检查弹出窗口”(这将引导您“进一步的错误”)调试您的示例,您正在尝试将事件添加到“0”
Uncaught TypeError: Object 0 has no method 'addEventListener'
原因是恕我直言,该页面尚未加载,但您正在尝试访问图像的DOM.
尝试将addEvents包装在类似的函数中
function magic() {
var x;
var img = document.getElementsByTagName("img");
for(x=0; x < img['length']; ++x) {
img[x].addEventListener('click',openPage, false);
}
}
并从body-onload事件(或$(document).ready()调用它,如果使用jQuery)
<body onl oad="magic()">
<img src="Google Cache.png", alt="WayBack Machine" class="button" id="WayBack Machine" height ="40px" />
<img src="Google Cache.png", alt="Google Cache" class="button" id="Google Cache" height ="40px" />
...
</body>
内容总结
以上是互联网集市为您收集整理的javascript – addEventListener在chrome扩展中使用时不会触发全部内容,希望文章能够帮你解决javascript – addEventListener在chrome扩展中使用时不会触发所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。