Tag: 谷歌铬扩展

Chrome扩展程序代码与内容脚本与注入的脚本

我试图让我的Chrome扩展程序在加载新页面时运行init()函数,但是我无法理解如何执行此操作。 据我所知,我需要在background.html中执行以下操作: 使用chrome.tabs.onUpdated.addListener()检查页面何时更改 使用chrome.tabs.executeScript来运行脚本。 这是我有的代码: //background.html chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { chrome.tabs.executeScript(null, {code:"init();"}); }); //script.js function init() { alert("It works!"); } 我也想知道如果init()函数将有权访问其他JS文件中的其他function?

Chrome扩展程序 – 检索Gmail的原始邮件

我正在为Chrome的扩展工作。 我希望parsing“原始”Gmail邮件的内容(当前查看的邮件)。 我熟悉编程方式在Chrome扩展中单击Gmail的“显示原始”button? 。 但是由于没有透露很多信息,所以很难理解。 我试图如下使用jQuery.load() $(windows).load(function() { alert(GLOBALS); }); 并将其放置在内容脚本中,但它也不起作用。 我使用的是Chrome的开发人员工具,它在调用alert(GLOBALS);返回以下错误alert(GLOBALS); Uncaught ReferenceError: GLOBALS is not defined 尽pipe在使用开发人员工具的控制台时,input到控制台GLOBALS它将返回一个数组。 任何线索如何编程读取原始消息的内容? 或者如何从内容脚本访问GLOBALS?

如何访问网页DOM而不是扩展页面DOM?

我正在编写一个Chrome扩展,并在popup.html文件中点击一个button后立即覆盖当前网页上的<div> 。 当我从popup.html中访问document.body.insertBefore方法时,它覆盖popup窗口上的<div> ,而不是当前网页。 我是否必须在background.html和popup.html之间使用消息才能访问网页的DOM? 我想在popup.html中做所有事情,如果可能的话也要使用jQuery。

在Chrome扩展中,从background.js读取控制台消息的位置?

我刚开始使用谷歌浏览器扩展,我似乎无法login到我的背景js控制台。 发生错误时(例如由于语法错误),我也找不到任何错误消息。 我的清单文件: { "name": "My First Extension", "version": "1.0", "manifest_version": 2, "description": "The first extension that I made.", "browser_action": { "default_icon": "icon.png" }, "background": { "scripts": ["background.js"] }, "permissions": [ "pageCapture", "tabs" ] } background.js: alert("here"); console.log("Hello, world!") 当我加载扩展,警报出现,但我没有看到任何东西被logging到控制台。 我究竟做错了什么?

有没有JavaScript / jQuery DOM更改侦听器?

基本上我想在DIV的内容发生变化时执行一个脚本。 由于脚本是分开的(在Chrome扩展和网页脚本中的内容脚本),我需要一种方式来简单地观察DOM状态的变化。 我可以设置投票,但似乎马虎。

使用内容脚本将代码插入到页面上下文中

我正在学习如何创buildChrome扩展程序。 我刚刚开始开发一个YouTube的事件。 我想用它与YouTube的Flash播放器(后来我会尽量使其与HTML5兼容)。 manifest.json的: { "name": "MyExtension", "version": "1.0", "description": "Gotta catch Youtube events!", "permissions": ["tabs", "http://*/*"], "content_scripts" : [{ "matches" : [ "www.youtube.com/*"], "js" : ["myScript.js"] }] } myScript.js: function state() { console.log("State Changed!"); } var player = document.getElementById("movie_player"); player.addEventListener("onStateChange", "state"); console.log("Started!"); 问题是控制台给了我“开始!” ,但是没有“国家改变!” 当我玩/暂停YouTubevideo。 当这个代码被放在控制台,它的工作。 我究竟做错了什么?

检查用户是否安装了Chrome扩展程序

我正在建立一个Chrome扩展,整个事情的工作方式,我希望它,我需要一个外部的JavaScript脚本能够检测到,如果用户有我的扩展安装。 例如:用户安装我的插件,然后去我的脚本的网站上。 该网站检测到我的扩展已安装,并相应地更新页面。 这可能吗?

将参数传递给使用chrome.tabs.executeScript()注入的内容脚本

如何将参数传递给内容脚本文件中的JavaScript: chrome.tabs.executeScript(tab.id, {file: "content.js"});

Chrome发送请求错误:TypeError:将循环结构转换为JSON

我有以下… chrome.extension.sendRequest({ req: "getDocument", docu: pagedoc, name: 'name' }, function(response){ var efjs = response.reply; }); 其中要求以下.. case "getBrowserForDocumentAttribute": alert("ZOMG HERE"); sendResponse({ reply: getBrowserForDocumentAttribute(request.docu,request.name) }); break; 但是,我的代码永远不会达到“ZOMG HERE”,而是在运行chrome.extension.sendRequest引发以下错误 Uncaught TypeError: Converting circular structure to JSON chromeHidden.JSON.stringify chrome.Port.postMessage chrome.initExtension.chrome.extension.sendRequest suggestQuery 有谁知道是什么原因造成的?

调用chrome.tabs.query后,结果不可用

我正在创建(学习)Google Chrome的扩展程序。 为了调试一些代码,我插入了console.log() ,如下所示: var fourmTabs = new Array(); chrome.tabs.query({}, function (tabs) { for (var i = 0; i < tabs.length; i++) { fourmTabs[i] = tabs[i]; } }); for (var i = 0; i < fourmTabs.length; i++) { if (fourmTabs[i] != null) window.console.log(fourmTabs[i].url); else { window.console.log("??" + i); } } 这是非常简单的代码:获取所有标签信息到我自己的数组中,并打印一些东西。 为了检查代码是否正常工作,我运行代码。 问题来了: 当我使用断点(通过开发工具),代码运行良好。 没有断点,什么都不打印。 […]