Javascript 试图向Chrome扩展添加一项功能,以防止scmplayer在页面访问时自动播放
我正在使用JavaScript和jQuery编写一个Chrome扩展,除此之外,我希望它能够防止scmplayer在用户访问的页面上自动播放。以下是在启用自动播放设置的情况下,向页面添加scmplayer的典型示例:Javascript 试图向Chrome扩展添加一项功能,以防止scmplayer在页面访问时自动播放,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在使用JavaScript和jQuery编写一个Chrome扩展,除此之外,我希望它能够防止scmplayer在用户访问的页面上自动播放。以下是在启用自动播放设置的情况下,向页面添加scmplayer的典型示例: <script type="text/javascript" src="http://scmplayer.net/script.js" data-config="{ 'skin':'skins/cyber/skin.css', 'vol
<script type="text/javascript" src="http://scmplayer.net/script.js"
data-config="{
'skin':'skins/cyber/skin.css',
'volume':50,
'autoplay':true, <!-- The autoplay setting -->
'shuffle':true,
'repeat':1,
'placement':'top',
'showplaylist':false,
'playlist':[{'title':'Bauhaus, %22Antonin Artaud%22','url':'http://www.youtube.com/watch?v=VJS9SKz7yog'},
...
">
</script>
您可以在这样开始之前使用暂停/停止
SCM.pause();
SCM
在这里是一个全局范围变量
但是chrome扩展的内容脚本是在一个隔离的环境中执行的,所以您不能直接从extension content.js访问这个变量
您必须将javascript代码注入页面
这是我的扩展文件
content.js
manifest.json
编辑:
在您共享该url后,我尝试了在该url上扩展。
是的,它不起作用
问题是扩展代码在加载scmframe
之前运行
scmframe
是由SCM脚本附加的
的静态id
所以等待iframe被加载会更好,试试这个内容脚本,它也可以处理你的URL
content.js
谢谢现在需要处理另一个问题,但我会尽快进行测试。抛出此错误:“拒绝执行内联脚本,因为它违反了以下内容安全策略指令:”script src'self'chrome extension resource:“@user1452893,我刚刚做了一个示例,它正在工作。如果可能的话,我可以看到你的manifest.json
或你的扩展吗?我通过添加”网络可访问资源“:[“content.js”]到我的清单。不幸的是,我现在可以显示我的扩展名。但是,我创建的content.js与您完全一样,并且修改了清单,但是它仍然不起作用。您可以显示您的示例吗?@user1452893,好的,我已经更新了我的答案,包括.crx文件
和演示页面。您可以看到下面的manifest.json
。
var actualCode = '(' + function() {
function stopScm() {
try {
SCM.pause();
alert("scm player was stopped");
} catch(e) {
setTimeout(stopScm, 1000);
}
}
stopScm();
} + ')();';
var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
{
"name": "Stops SCM player",
"version": "0.2",
"manifest_version": 2,
"description": "Example",
"permissions": [
"http://dl.dropboxusercontent.com/u/39457223/bountify/16/"
],
"content_scripts": [ {
"matches": ["http://dl.dropboxusercontent.com/u/39457223/bountify/16/*"],
"js": ["content.js"],
"run_at": "document_end"
}
]
}
$("#scmframe").load(function() {
var actualCode = '(' + function() {
function stopScm() {
try {
SCM.pause();
} catch(e) {
setTimeout(stopScm(), 1000);
}
}
stopScm();
} + ')();';
var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
});