我正在创建一个Chrome扩展名。它具有浏览器动作。单击此操作时,JavaScript文件将运行。该文件创建一个新选项卡。在该选项卡中,有Divs。我正在尝试操纵他们的内容。要重新调解一个问题:我该如何首次单击按钮。(注意:如果我单击按钮,然后刷新页面,则该版本的代码将工作直到我更改代码,然后再次刷新页面。)
来自Chrome的帮助页,我发现:
//添加事件侦听器一旦DOM通过侦听来满足 //文档上的
DOMContentLoaded
事件,然后将听众添加到 //特定元素触发时。 document.addeventlistener('domcontentloaded',function(){ document.queryselector('button')。addeventListener('click'clickHandler); });
http://developer.chrome.com/extensions/contentsecuritypolicy.html
清单中的javascript文件:
chrome.browserAction.onClicked.addListener(function(tab) {
//This is to put the manager one tab to the right
var myIndex = tab.index;
chrome.tabs.create({index : myIndex + 1, url: "newTab.html"});
newtab.html
<script type="text/javascript" src="jquery.min-1.8.2.js"></script>
<script type="text/javascript" src="functionality02.js"></script>
<html><head>
<title>Title</title>
</head><body>
<div id='try'></div>
</body></html>
功能02.JS
function letsTryThis2(){
$("#try").append("<div>Some Content.</div>");
}
document.addEventListener('DOMContentLoaded', letsTryThis2);
function letsTryThis2(){
$("#try").append("<div>Some Content.</div>");
}
$(window).load(function () {
letsTryThis2();
});
编辑:作为我评论的(不良)替代方案,您可以尝试以下方法:
function letsTryThis2(){
$("#try").append("<div>Some Content.</div>");
}
$(function(){
setTimeout(function(){
letsTryThis2();
},2000);
});
Chrome扩展名被加载到浏览器中,就像网站上的JavaScript如何将其加载到页面上一样。如果更改源代码,则需要在最坏的情况下重新加载应用程序并充其量刷新页面。
Chrome Extensions并不是为实时更改而设计的,因为这是效率低下的,并且只有您,开发人员才会受到。
的影响。您看到的行为完全正常。加载该脚本时,该脚本嵌入到页面上。要重新加载该修改的源,您必须重新加载页面,以便再次应用它。考虑到您的用户永远不会面对这个问题,除非他们是Chrome Hackers并处理代码,在这种情况下,他们可能知道要刷新页面。;)