相关疑难解决方法(0)

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

我正在学习如何创建Chrome扩展程序.我刚开始开发一个来捕捉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"]
    }]
}
Run Code Online (Sandbox Code Playgroud)

myScript.js:

function state() { console.log("State Changed!"); }
var player = document.getElementById("movie_player");
player.addEventListener("onStateChange", "state");
console.log("Started!");
Run Code Online (Sandbox Code Playgroud)

问题是控制台给了我"开始!" ,但没有"状态改变!" 当我播放/暂停YouTube视频时.

将此代码放入控制台时,它可以正常工作.我究竟做错了什么?

javascript google-chrome youtube-api google-chrome-extension content-script

452
推荐指数
5
解决办法
24万
查看次数

Chrome扩展程序 - 从网页检索全局变量

我正在开发Chrome扩展程序.我希望解析"原始"Gmail邮件(当前查看的邮件)的内容.

我试图利用jQuery.load()如下

$(windows).load(function() { alert(GLOBALS); });
Run Code Online (Sandbox Code Playgroud)

并将其放在内容脚本中,但它也不起作用.我正在使用Chrome的开发人员工具,它会在调用时返回以下错误alert(GLOBALS);

未捕获的ReferenceError:未定义GLOBALS

虽然,在使用开发人员工具的控制台时,键入控制台GLOBALS会返回一个数组.

有关如何从内容脚本访问GLOBALS的任何线索?

html javascript dom google-chrome-extension

44
推荐指数
2
解决办法
3万
查看次数

Chrome扩展程序将外部JavaScript添加到当前页面的HTML

我通过Chrome扩展程序在页面末尾添加了一些外部JavaScript.然后外部JavaScript尝试将一些数据发布回服务器,但是没有发生.

JavaScript希望获取当前页面和引用者的URL并将其发回服务器.

任何人都可以请教我这里有什么问题,如果不可能这样我怎样才能将数据从当前页面发回服务器.

的manifest.json

{
  "name": "Website Safety",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The Website Safety Extension.",
  "browser_action": {
    "name": "View the website information for ",
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "background": {
  //  "scripts": ["refresh.js"]
    "page": "background.html"
  },
  "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",
  //"background_page": "background.html"

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["contentScript.js"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在是contentScript.js

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-31046309-1']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() {
var ga = …
Run Code Online (Sandbox Code Playgroud)

javascript dom google-analytics google-chrome-extension content-script

24
推荐指数
3
解决办法
3万
查看次数

未捕获的TypeError:无法读取chrome扩展中未定义的属性"local"

我写了一个Chrome扩展程序.我无法使用 localStorage.setItemlocalStorage.getItem存储和检索,因为后台和浏览器操作在不同的环境中运行[ 如此处所示 ].

所以我决定使用Chrome存储API:

var storage = chrome.storage.local;
var myTestVar = 'somevar';
var obj = {};
obj[myTestVar] = $("#somevar").val();
storage.set(obj);
Run Code Online (Sandbox Code Playgroud)

这产生了以下错误:

未捕获的TypeError:无法读取未定义的属性"local"

我究竟做错了什么?

javascript local-storage google-chrome-extension google-chrome-storage

9
推荐指数
1
解决办法
1万
查看次数

从chrome扩展中的内容脚本访问全局对象

我在.js文件中定义了一个全局对象.例如,file1.js包含全局对象SomeObject.此文件在background.html中加载.

由于file1.js包含在background.html中,因此我可以访问此页面中的全局对象.所以这里没有问题.

当执行诸如单击扩展按钮之类的事件时,我正在使用chrome.tabs.executeScript(null, {file: "contentscript.js"});api 运行内容脚本.

在这种情况下,如何访问脚本中的SomeObject?

html javascript google-chrome-extension

6
推荐指数
1
解决办法
2万
查看次数

chrome.extension.onMessage.addListener无法读取未定义的属性'onMessage'

background.html:

chrome.tabs.query({active:true, currentWindow:true},function(tabs){
  chrome.tabs.sendMessage(tabs[0].id,"target.js");
});
Run Code Online (Sandbox Code Playgroud)

content.js:

chrome.extension.onMessage.addListener(function(msg,sender,sendResponse){
  if (msg == "target.js"){
    extensionID = sender.id;
  }
});
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用;

Uncaught TypeError: Cannot read property 'onMessage' of undefined 
Run Code Online (Sandbox Code Playgroud)

怎么做对了?

google-chrome-extension

5
推荐指数
1
解决办法
1万
查看次数

使用Chrome控制台中的Tampermonkey API?

有没有办法在Chrome的JavaScript控制台中使用Tampermonkey的API

我想弄乱像GM_xmlhttpRequest()和的功能GM_listValues().

javascript console google-chrome google-chrome-devtools tampermonkey

3
推荐指数
1
解决办法
3681
查看次数

Tampermonkey 用户脚本可以访问 Chrome API 吗?

我正在开发一个需要chrome对象的用户脚本,但我无法访问它。如何访问chrometampermonkey 用户脚本内的对象?也许,清单中的一些权限或者什么......

javascript google-chrome userscripts tampermonkey

3
推荐指数
1
解决办法
2589
查看次数

Chrome扩展程序中的AJAX请求失败,具有正确的清单权限?

我正在编写Chrome扩展程序,它执行简单的ajax调用(基于此示例来自文档):

$.ajax({
    type: "GET",
    url: "http://www.flags.99k.org/getFlags.php"
}).done(function(response) {
    alert("SUCCESS: " + response);
}).fail(function(response) {
    alert("FAILURE: " + response);
});
Run Code Online (Sandbox Code Playgroud)

请求总是失败,因为警报显示:FAILURE: [object Object].
该URL有效:当我将http://www.flags.99k.org/getFlags.php放入我的地址栏时,我得到了这个:

[{"UID": "1", "Message": "Hello"}, {"UID": "2", "Message": "World"}, {"UID": "3", "Message": "Hello World"}]
Run Code Online (Sandbox Code Playgroud)

这是我的manifest.json扩展名.

{
  "name": "Hello World",
  "version": "1.0",
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
      "http://www.flags.99k.org/"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我使用Chromium 17.0.963.79(Developer Build 125985 Linux)Ubuntu 11.10.

ajax jquery google-chrome google-chrome-extension

2
推荐指数
1
解决办法
4521
查看次数

如何使用chrome扩展访问localstorage

我正在研究chrome扩展,我能够成功地将信息存储到本地存储,但我的问题实际上是在本地存储中访问该信息.什么我没有不返回任何只是说NULL.

我有两个文件:options.html和content.js.options.html是用户输入信息以保存到本地存储的位置,content.js将访问要使用的信息.

options.html

$(function() {
    // Insert new buttons (you'd probably not ACTUALLY use buttons, instead saving on blurs or every x seconds)
    $("#save_buttons").after("<input type='submit' value='Save Form' id='saveData'>").after("<input type='submit' value='Clear Saved Data' id='clearData'>");
    $("#saveData").click(function(e) {
        // Don't actually submit form
        e.preventDefault();

        // Bit of generic data to test if saved data exists on page load
        localStorage.setItem("flag", "set");

        // serializeArray is awesome and powerful
        var data = $("#hanes").serializeArray();

        // iterate over results
        $.each(data, function(i, obj) {
            // HTML5 magic!!
            localStorage.setItem(obj.name, obj.value); …
Run Code Online (Sandbox Code Playgroud)

jquery html5 local-storage google-chrome-extension

2
推荐指数
1
解决办法
3659
查看次数

Chrome扩展程序 - 自动运行

我想知道每次页面加载时是否可以自动运行我的扩展(或我的扩展中的功能)?现在,我已设置您将单击图标浏览器操作图标以运行我的扩展.

javascript autorun google-chrome-extension

1
推荐指数
1
解决办法
8749
查看次数