如果我刷新页面,则可以使用jQuery,但不能在原始负载上进行.铬扩展



我正在创建一个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并处理代码,在这种情况下,他们可能知道要刷新页面。;)

最新更新