簡體   English   中英

如何讓提供的google PageAction示例擴展在Google Chrome上正常工作?

[英]How to get the google PageAction sample extension working on Google Chrome as supplied?

這可能是我在做些愚蠢的事情,但我不知道該怎么辦。 我正在嘗試使示例Google Chrome頁面擴展演示正常工作。 該演示的來源可以在以下位置找到: http : //src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/pageAction/

這是一個包含2個代碼文件的簡單程序-清單和background.js文件。 這是background.js:

// Called when the url of a tab changes.
function checkForValidUrl(tabId, changeInfo, tab) {
  // If the letter 'g' is found in the tab's URL...
  if (tab.url.indexOf('g') > -1) {
    // ... show the page action.
    chrome.pageAction.show(tabId);
  }
};

// Listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(checkForValidUrl);

這是manifest.json文件:

{
  "name": "Page action by URL",
  "version": "1.0",
  "description": "Shows a page action for urls which have the letter 'g' in them.",
  "background": { "scripts": ["background.js"] },
  "page_action" :
  {
    "default_icon" : "icon-19.png",
    "default_title" : "There's a 'G' in this URL!"
  },
  "permissions" : [
    "tabs"
  ],
  "icons" : {
    "48" : "icon-48.png",
    "128" : "icon-128.png"
  },
  "manifest_version": 2
}

如所寫,此代碼對我不起作用。 Chrome可以很好地加載擴展程序,但是當我導航到URL中帶有ag的頁面時,沒有任何圖標顯示。

我找到了這個答案: 如何使page_action出現在特定頁面上?

所以我嘗試了以下-

  • 創建了一個background.html文件:

     <html><head><script> ... cut and pasted contents of background.js above </script></head></html> 
  • 將manifest.json更改為manifest_version:1而不是manifest_version:2

  • 將manifest.json中的background屬性更改為background_page:“ background.html”

這工作得很好。

但是我絕對無法使用background.js文件和manifest_version = 2來運行該程序。

所以我想知道如何使manifest_version = 2和background.js文件一起工作。 另外,這是否很重要-即每個人都只是使用manifest_version = 1而不必擔心這種事情嗎?

您使用的是哪個版本的Chrome? 就像我19歲時就讀的一樣 這些新的背景選項出現在18歲,因此示例實際上應該使用minimum_chrome_version鍵來避免此問題。 如果非主干文檔未指向在這些文檔所針對的Chrome版本中不起作用的示例,那也將是一件好事。

http://code.google.com/chrome/extensions/trunk/manifestVersion.html
此頁面上說...。

不建議在Chrome 17或更低版​​本中設置manifest_version 2。 如果您的擴展程序需要在舊版的Chrome中運行,請暫時使用版本1。 在版本1停止工作之前,我們會給您足夠的警告。

有點爛壽嗎? 如果Chrome和Chrome版本為清單清單之前的版本2,為什么我們不能再使用background和background_page?...我嘗試這樣做,但它抱怨background_page不適用於清單清單2,也沒有安裝它。 因此,您可能要推遲使用清單版本2一段時間。
雖然閱讀第2版的文檔並開始使用其將要實施的一些實踐(例如沒有內聯腳本)可能是一個好主意。

可能導致此問題的另一件事:

我遇到了這個問題,因為我忘記了按照示例在清單中包含declarativeContent權限。

希望這可以幫助某人...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM