在我的扩展中,我需要将一些数据从一个选项卡的内容脚本传输到另一个选项卡的内容脚本.如果我知道该标签对象的名称或网址的一部分,我如何使用chrome.tabs选择某个标签?两个标签的脚本如何通信?
更新:
显然我在chrome.extension中没有方法sendMessage.当我从内容脚本运行以下内容时:
chrome.extension.sendMessage("message");
Run Code Online (Sandbox Code Playgroud)
我进入控制台:
未捕获的TypeError:对象#没有方法'sendMessage'
我希望我的Chrome 扩展程序内容脚本能够检测页面内容的语言或区域设置(而不是浏览器语言/区域设置)。我假设 Chrome 扩展 API 中有一个方法可以实现此目的,但我应该使用标准 Javascript 库吗?
我试图理解,有什么区别:
"permissions": [
"*.google.com"
],
Run Code Online (Sandbox Code Playgroud)
和
"content_scripts": [
{
"matches": ["*.google.com"]
}
]
Run Code Online (Sandbox Code Playgroud) 我有一个用户连接时运行的内容脚本"*://www.youtube.com/*".我需要知道网址何时发生变化,因为当您点击链接时,YouTube没有打开新的"页面",可以这么说.而是它改变了URL和页面内容(我认为).因此,我的内容脚本没有意识到任何事情都发生了变化.(我知道这是因为当我重新加载页面时它会起作用)
那么如何找出我的脚本运行的选项卡的URL何时发生了变化?
[编辑]:我的问题涉及专门获取运行内容脚本的选项卡的URL,而不是获取活动选项卡的URL.
CMS - wordpress在一些更改后我在一个页面上有错误:
在prefs初始化之前加载pref showConsoleLogs,你将无法获得正确的结果content-script.bundle.js:333
http://www.74skazka.ru/restorany/baden-gourmet/?donotcachepage=84523706ac5384c08c3beb52312fdef0
如果我在这里删除所有代码错误
我正在为Chrome,Firefox和Safari编写一个相当复杂的浏览器扩展程序.
在Chrome和Firefox中,我可以根据网址匹配指定将哪些内容脚本注入到哪些网站中.
Safari似乎没有提供任何此类(细粒度)功能 - 它们只允许所有站点使用一个白名单/黑名单.
有没有办法做到这一点?如果没有,我如何有条件地加载Javascript文件?(记住我不能将它们添加到DOM中).
我试过yepnope,但它附加到DOM.
注意:我不想在实际文件中添加逻辑,因为它们本质上是在扩展中重复的库代码.
我正在尝试创建一个Google Chrome扩展程序,在页面加载时按下按钮.我已经能够使用此代码使用VBscript为Internet Explorer触发按钮:
IE.Navigate("javascript:changeIframe();")
Run Code Online (Sandbox Code Playgroud)
但是,现在我需要通过扩展程序在Google Chrome中执行此操作.但是,该按钮没有id:
<input type="button" value="Start!" onclick="javascript:changeIframe();">
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的,似乎没有任何效果:
window.onload="javascript:changeIframe()";
javascript:changeIframe();
document.getElementById('').click();
document.getElementById('').submit();
Run Code Online (Sandbox Code Playgroud)
它似乎.click并.submit没有在Google-Chrome的javascript中定义?
奇怪的是,当我使用这个脚本时:
javascript:changeIframe();
Run Code Online (Sandbox Code Playgroud)
在Chrome的javascript控制台中,它会自动按下按钮,一切正常.但是,当我在.js文件中放入相同的脚本时,它不起作用.
我只需要知道我必须在我的.js中放置什么才能在页面加载时自动按下按钮.
有没有办法在内容脚本中访问Fire Fox插件sdk中的Html5文件api?
这是为了存储用户添加的单词及其含义所必需的.数据可能会变大,因此本地存储不是一种选择.
window.requestFileSystem3 = window.requestFileSystem || window.webkitRequestFileSystem;
Run Code Online (Sandbox Code Playgroud)
给我错误TypeError:window.requestFileSystem3不是一个函数.
我问这个是因为我从Google Chrome扩展程序移植此代码,允许在内容脚本中访问文件api.
其他问题
1)如果不允许HTML5文件API,那么我应该使用文件模块吗?
2)文件模块是否允许访问文件系统上的任何文件,而不是只访问沙盒访问文件系统的Html5文件api?
3)假设我必须使用文件模块什么是存储我的文件的最佳位置(如用户配置文件目录或扩展目录)以及如何在代码中获得此路径.
我为这个问题中的许多子问题道歉.谷歌对这个话题并不是很有帮助.
任何示例代码都非常有用.
有没有一种简单的方法可以为简单的内容脚本创建Firefox扩展,而无需使用Add-On SDK和PageMod?通过安装Python和SDK的麻烦,学习如何使用SDK和API,添加不必要的膨胀和抽象层,只是为了执行简单的内容脚本,这似乎有点过分.
我已经尝试过使用XUL浏览器覆盖并在那里注入脚本,但是在browser.xul上下文中注入所有内容而不是document.body增加了很多复杂性......
那么在html文档而不是XUL文档中注入一些脚本和css文件最简单,最轻量级的方法是什么?
此SO答案详细说明了如何通过Chrome扩展程序下载文件,但我使用的是内容脚本,该内容脚本对Chrome API的访问权限有限.换句话说,我无权访问该chrome.downloads对象.我也试过这个vanilla JS解决方案,但它对我不起作用.有没有人有内容脚本的解决方案或知道为什么第二个解决方案不起作用?
content-script ×10
javascript ×5
browser ×1
button ×1
firefox ×1
locale ×1
manifest ×1
permissions ×1
safari ×1
wordpress ×1