2

Chrome拡張機能を作成しています。ブラウザアクションがあります。それをクリックすると、javascriptファイルが実行されます。そのファイルは新しいタブを作成します。そのタブには、divがあります。私は彼らのコンテンツを操作しようとしています。質問を言い換えると、ボタンが最初にクリックされたときにどのように機能させることができますか。(注:ボタンをクリックしてからページを更新すると、コードを変更してからページを再度更新するまで、そのバージョンのコードが機能します。)

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);
4

2 に答える 2

2
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);
});
于 2012-10-28T20:43:22.100 に答える
1

Chrome拡張機能は、WebサイトのJavaScriptがページに読み込まれるのと同じように、ブラウザに読み込まれます。ソースコードを変更した場合、最悪の場合はアプリをリロードし、せいぜいページを更新する必要があります。

Chrome拡張機能はリアルタイムの変更用に設計されていません。これは非効率的であり、開発者であるあなただけが影響を受けるためです。

あなたが見ている振る舞いは完全に正常です。スクリプトは、ロード時にページに埋め込まれます。その変更されたソースをリロードするには、ページをリロードして、再度適用されるようにする必要があります。ユーザーがChromeハッカーであり、コードをいじってみない限り、この問題に直面することは決してないことを考慮してください。その場合、ユーザーはおそらくページを更新することを知っています。;)

于 2012-10-28T23:07:47.060 に答える