0

拡張機能の CRX バージョンをインストールしようとしていますが、アドレス バーに配置された拡張機能ボタンに一部の画像ファイルが読み込まれません。try/catch も入れましたが、エラーは発生しません。Developer/Unpack バージョンは問題なく動作しています。

私は何をしているのですか?すべての画像ファイルが CRX ファイルで圧縮されていないと思います。残念ながら、.ZIP に名前を変更しても MacoSX で解凍できないため、CRX コンテンツを抽出することはできません。

拡張機能ページにドラッグして CRX をインストールしています。問題をテストするにはどうすればよいですか?

コードを以下に示します。

マニフェスト.jsonn

{
  "name": "Domain Colors",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Change Button Color for domains.",
  "content_scripts": [
    {
      "matches": ["http://*/*","https://*/*"],
      "js": ["script.js"]
    }
  ],
  "permissions": [
  "tabs", "http://*/*"
],
  "browser_action": {
    "default_title": "Colry",
    "default_icon": "blue.png"
  },
  "background": {
    "scripts": ["background41.js"]
    }
}

script.js

alert("Testing Version..Wait for a while");
var request = new XMLHttpRequest();
if (request == null)
{
        alert("Unable to create request");
}
else
{
    try
    {
        var timestamp = new Date().getTime(); //to avoid cache ajax calls
        var randomnumber=Math.floor(Math.random()*11);
        timestamp = timestamp * randomnumber;
        var _domain = document.domain;
        _domain = _domain.replace("www.","");
        var url = "http://xxxxnet/xxx/xxx.asp?xx="+_domain+"&ts="+timestamp;
        request.onreadystatechange = function()
        {
            //request.setRequestHeader('Cache-Control', 'no-cache');
            //request.setRequestHeader('Pragma', 'no-cache');
            if(request.readyState == 4)
            {
                LDResponse(request.responseText);
            }
        }
        request.open("GET", url, true);
        request.send(null);
    }
    catch(e){
        alert('An error has occurred in AJAX Call: '+e.message)
    }
}

function LDResponse(response)
{
    var json = JSON.parse(response);
    alert(response);
    var msg = document.domain+","+json["buttonColour"]+","+json["buttonTip"];
    chrome.extension.sendMessage(msg);
}

背景ファイル

var currentUrl = "";
var currentColor = "";
var currentTip = "";

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
    if (changeInfo.status === 'loading')
    {
        chrome.browserAction.setIcon({
            path:'chrome-extension://lkhgldilknhpmdodeblhnbniahbjcdcm/gray.png',
            tabId:tabId
        });
        chrome.extension.onMessage.addListener(function(message, sender)
        {
            try
            {
                var stuff = message.split(",");
                currentUrl = stuff[0];
                currentUrl = currentUrl.replace("www.","");
                currentColor = stuff[1];
                currentTip = stuff[2];
            }
            catch(e)
            {
                alert('An error in onMessage method: '+e.message)
            }
        });
    }
    else if (changeInfo.status === 'complete')
    {
        try
        {
           chrome.browserAction.setIcon({
            path:'chrome-extension://lkhgldilknhpmdodeblhnbniahbjcdcm/'+currentColor+".png",
            tabId:tabId
            });

            chrome.browserAction.setTitle({
              tabId:tabId,
              title:currentTip
            });
        }
        catch(e)
        {
            alert('An error in Complete method: '+e.message)
        }

    }
});

ありがとう

4

1 に答える 1

1

に置き換えpath:'chrome-extension://lkhgldilknhpmdodeblhnbniahbjcdcm/'+currentColor+".pngpath: chrome.extension.getURL("currentColor.png")動作させます。

ランタイム拡張 ID は ではないlkhgldilknhpmdodeblhnbniahbjcdcmため、動的に生成されたコンテンツを使用するには、使用する必要がありますchrome.extension.getURL()

于 2012-11-28T11:47:52.873 に答える