标签: browser-extension

扩展创建失败,没有任何信息

我有一个可以在Firefox,IE和Chrome中运行的浏览器扩展程序,我现在将它移植到safari中.

我按照苹果开发者网站上的说明进行操作,并将扩展文件夹重命名为myext.safariextension.我拿到了证书,我认为safari扩展构建器可以识别它.

但是,由于某种原因,创建扩展失败.我收到以下消息:

失败,不知道为什么

我不知道如何解决这个问题.谷歌搜索,SO搜索和在SO聊天室询问没有结果.

任何帮助将不胜感激,即使它只是指导我找到正确的解决方案.如果这有帮助,这是Windows 5上的Safari 5.

javascript safari browser-extension safari-extension

5
推荐指数
0
解决办法
128
查看次数

在浏览器中获取呈现文本的确切字体,可能使用浏览器扩展名

我知道你可以获得font-family值,window.getComputedStyle()但这并不总是浏览器用来呈现的字体.例如,如果给定的文本包含(多语言)文本的字体族不携带,浏览器呈现部分地与系统字体的文本.

如果你看一看内置的web开发工具,无论是在Chrome或Firefox,他们都有一个小区域,以显示(Rendered Fonts在Chrome窗格或Fonts选项卡上的Firefox浏览器)所使用的确切的字体.对于Firefox,我想这个代码是用的,它似乎是在调用内部API.

我正在寻找任何符合DOM(或特定于供应商)的方式来从JavaScript土地获取确切的字体.如果这意味着编写浏览器扩展/附加组件以提供API /注入信息/任何内页代码访问,这是最糟糕的情况,但可以接受.

javascript firefox fonts google-chrome browser-extension

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

Safari 扩展程序将消息发送到特定选项卡

有没有办法将消息从全局页面发送到特定选项卡
我目前正在做的是,在创建选项卡时,注入的脚本会创建一个唯一的 ID,并将带有此编号的消息发送到全局页面,全局页面会保存此编号。
如果全局页面需要将一些数据发送到选项卡(即: tab #3),则全局页面将向所有选项卡“广播”一条消息,并将该编号#3作为传递给选项卡的数据的一部分(遍历所有选项卡并发送一个消息发送到每个选项卡)。
有没有像 Chrome: (ie: chrome.tabs.sendRequest(tabID, {action: 'respond', params:[channel,msg,async]});)这样的东西?

现在我正在做的是在注入的脚本端,每个脚本都有一个监听器来捕捉这个消息。如果内容脚本唯一编号等于全局页面发送的编号,则此消息是给它的,否则doNothing

在 Safari 中是否有更简单更优雅的方法来做到这一点?

javascript safari add-on browser-extension safari-extension

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

实现setTimeout本机方法

我正在研究facebook中的浏览器扩展,现在我的问题是facebook覆盖了setTimeout和setInterval本机函数,它们的实现在Internet Explorer上不起作用.

有没有办法实现这些功能?

javascript internet-explorer settimeout setinterval browser-extension

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

Chrome扩展程序:Chrome启动时仅执行一次背景页面

我正在使用chrome扩展,我的清单加载了一个背景页面:

...
  "background": { "scripts": ["background_page.js"], "persistent": false },
...
Run Code Online (Sandbox Code Playgroud)

.js代码如下所示:

var once = false;
window.addEventListener("load", function () {
    if ( once == true ) { return; }
    alert( 'test' );
    once = true;
}, false);
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,但我想每次浏览器启动时只运行一次background_page.js代码.

现在,我不知道为什么,但代码执行不止一次.起初我以为每次打开新标签时都会执行,但情况并非如此.一旦我启动浏览器就会出现警报,然后如果我快速打开一个新标签,警报就不会出现,但是如果我等待大约1分钟左右并打开一个新标签,则警报会再次出现.

如何确保每次浏览器启动时background_page.js代码只运行一次?

browser google-chrome browser-extension google-chrome-extension

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

chrome的--load-extension参数不起作用

有谁知道如何从命令行加载解压缩的谷歌浏览器插件?我尝试了以下,但它不起作用:

"C:\Users\<name>\AppData\Local\Google\Chrome\Application\chrome.exe" --load-extension="<path/to/unpacked/extension>"
Run Code Online (Sandbox Code Playgroud)

上面的命令只打开一个chrome浏览器窗口,但不加载我的扩展名.

google-chrome browser-extension google-chrome-extension

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

如何在crossrider中检查浏览器是否处于活动状态?

我需要在扩展中使用时间来计算浏览器.如果我可以检查浏览器是否处于活动状态,那么很容易计算时间.这怎么可能在交叉驾驶者?

var focused = true;
window.onfocus = window.onblur = function(e) {
    focused = (e || event).type === "focus";
}
alert(focused);
Run Code Online (Sandbox Code Playgroud)

我在background.js中尝试了这个代码,但即使我最小化浏览器窗口,它总是显示"true".

browser-extension crossrider

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

如何从 Firefox 浏览器扩展发出 AJAX 请求?

我对浏览器扩展完全陌生。我已经成功制作了一个自动更改网页内容的简单扩展,现在我希望它在查询服务器的 true 或 false 值后更改该内容。我正在尝试使用 AJAX 请求(纯 JavaScript)来做到这一点。由于某种原因,我无法从与浏览器扩展交互的服务器上的 PHP 脚本中获取任何信息。

显现:

{

  "manifest_version": 2,
  "name": "Truth Seeker",
  "version": "1.0",

  "description": "Returns true.",

  "icons": {
    "48": "icons/icon.png"
  },

  "content_scripts": [
    {
      "matches": ["*://*/*"],
      "js": ["script.js"]
    }
  ]

}
Run Code Online (Sandbox Code Playgroud)

脚本:

theBool = false;
url = /* PHP URL HERE */;
string = "";

request(MakeOutput, url, string);
if(theBool == true){
    alert("is true");
}

function MakeOutput(x){
    if(x == "true"){
       theBool = true; 
    }
}

function request(fix, url, string){         
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange …
Run Code Online (Sandbox Code Playgroud)

ajax browser-extension

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

获取当前选项卡 ID 的最简单方法?

我不太明白 Chrome 扩展 API 是如何工作的。很难理解background.js和content.js是如何工作的,但我当前的问题是,函数insertCSS(); 似乎需要 tabId,即使官方文档说它是可选的。

所以,这个平台上的答案都不能帮助我,因为我什至不理解整个 API 的概念。

那么有人可以解释一下为什么这样的事情不可能吗?

var tabInfo = chrome.tabs.getCurrentTab();

var id = tabInfo.tabId;
Run Code Online (Sandbox Code Playgroud)

javascript browser-extension google-chrome-extension

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

在 YouTube 视频页面上,如何通过 JavaScript 检查视频当前正在播放广告还是实际视频?

我正在编写一个 Chrome 扩展程序,用于显示与视频同步的内容。

我需要等到观看者完成广告/中贴片后才能显示内容。我如何通过 javascript 执行以下操作?

if (videoOnAd == true) {
//do something
} else {
//do something else
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

  • 凯勒

javascript youtube dom browser-extension google-chrome-extension

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