【问题标题】:Userscript works in Tampermonkey but not when loaded as an unpackaged extension in ChromeUserscript 在 Tampermonkey 中有效,但在 Chrome 中作为未打包的扩展加载时无效
【发布时间】:2014-04-18 17:47:04
【问题描述】:
我最近创建了一个用户脚本,允许在 hitbox.tv 上使用 twitch.tv 表情。用户脚本在 Tampermonkey for Chrome 中完全可以正常工作,但是,当我尝试加载未打包的脚本和清单文件以创建 chrome 扩展时,它不起作用。我不知道是什么导致了这个问题,所以如果你们中的任何人能给我一些支持,将不胜感激。
提前致谢!如果您需要更多信息,请尽管询问,我会尽力提供更多信息。
-汤姆。
【问题讨论】:
标签:
javascript
google-chrome
google-chrome-extension
userscripts
tampermonkey
【解决方案1】:
您的清单:
{
"manifest_version": 2,
"content_scripts": [ {
"exclude_globs": [ ],
"include_globs": [ "*" ],
"js": [ "465792.user.js" ],
"matches": [ "http://hitbox.tv/*",
"https://hitbox.tv/*"
]
} ],
"description": "Allows the use of Twitch emotes on Hitbox.",
"icons": { "128": "icon128.png" },
"name": "Hitbox Emotes",
"version": "1.1.4"
}
您的内容脚本:
emotify.emoticons("",yourHundredLineObject);
我发现有两件事可能会导致问题:
网站hitbox.tv 在前面添加了一个 www。到网址,它与您列出的内容不匹配。我想你想要matches: ["*://*.hitbox.tv/"] (reference)。您的 glob 似乎也没有做任何事情,可以删除。
您的内容脚本正在尝试使用 hitbox 定义的函数 emotify.emoticons。 Isolated worlds 会阻止这种情况。为了调用该函数,您需要有一个不同的内容脚本将 <script src="465792.user.js"></script> 写入网页 (example)。