我正在尝试为Spotify(和其他人)添加全局热键支持。为此,我必须在播放器应用程序iframe中执行内容脚本,但无论我尝试使用什么模式,Firefox都不会执行我的内容脚本。
这是我尝试做的事情:
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: /^https?:\/\/play\.spotify\.com\/apps\/player\/.+/,
attachTo: ["frame"],
contentScriptFile: [data.url("content.js")]
});
有谁知道什么可能是错的?我怎样才能让它匹配?
Chrome的相同功能非常出色: https://bitbucket.org/panzi/play-control/src/f1dbd217661c0f09d3615dce7b8b1cab9f8fbf70/browser-plugin/chrome/playcontrol-spotify/?at=default
答案 0 :(得分:1)
我是正则表达式noob,但在doc examples中,即使字符串以' http'开头,他们也不会使用^
。
尝试逐步更严格地查看它不相关的正则表达式的哪个部分。在那里扔onAttach: console.log("pageMod attached"),
以确保它没有被附着,而其他东西不会导致问题。
/.*play\.spotify\.com\/apps\/player.*/
如果这样可行,那么要么它不喜欢开头还是结尾。尝试:
/https?:\/\/play\.spotify\.com\/apps\/player.*/
/^https?:\/\/play\.spotify\.com\/apps\/player.*/
.*play\.spotify\.com\/apps\/player\/.*/
.*play\.spotify\.com\/apps\/player\/.+/
如果以上所有方法都有效,那么你的字符串也可以正常工作。
答案 1 :(得分:0)
网址匹配按照我编写的方式工作。这个错误是别的。