自Windows 10周年更新以来,我开始为Edge开发扩展.
我想在Windows商店中发布其中一些,但我不知道如何.我正在加载扩展程序.你如何打包并提交?
我创建了chrome扩展程序,它在桌面上的Web浏览器中运行.但是我无法在移动Chrome浏览器中下载.我想在移动和桌面Chrome浏览器中运行相同的扩展程序.那么有没有办法在移动Chrome浏览器中运行扩展.
感谢@kofifus提供的信息,Chrome从61开始明确禁止其默认新标签页上的内容脚本
假设我有以下示例扩展名,它将test
在控制台中输出.
的manifest.json
{
"name": "Test",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"content.js"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
content.js
console.log('test');
Run Code Online (Sandbox Code Playgroud)
上面的扩展会在chrome://newtab
页面中运行良好吗?
一些有用的信息:
我知道默认情况下chrome扩展程序无法访问chrome://
页面,我们可以通过更改此行为chrome://flags/#extensions-on-chrome-urls
chrome://newtab
实际上是一个网址https://www.google.co.jp/_/chrome/newtab?espv=2&ie=UTF-8
,所以不应该受到上述限制.
有许多鼠标手势扩展可用,如crxMouse,它们在chrome://newtab
页面上运行良好
还有一些声音说它不允许注入内容脚本chrome://newtab
,例如,@ Xan在这个答案下面的评论
和这位作者的情况
因此它在不同设备(或设置?)中的不同行为看起来很奇怪.是否有关于内容脚本是否可以在chrome://newtab
页面中运行的官方声明?或者是否有一个设置我们可以改变这种行为?
是否有任何已发布的文档或用于编写Microsoft Edge扩展的SDK?如果是这样,我找不到它.如果没有,是否有可用的ETA?在Windows 10发布之前获得跳转会很不错.
browser-extension windows-10 microsoft-edge microsoft-edge-extension
我正在关注The Chromium Projects在Windows上构建Chrome浏览器.当我去Run后同步钩子步骤并运行
gclient runhooks
Run Code Online (Sandbox Code Playgroud)
以下错误显示,
________ running 'D:\Chromium\depot_tools\depot_tools\python276_bin\python.exe src/build/landmines.py' in 'D:\Chromium\chromium'
Traceback (most recent call last):
File "src/build/landmines.py", line 147, in <module>
sys.exit(main())
File "src/build/landmines.py", line 134, in main
gyp_environment.SetEnvironment()
File "D:\Chromium\chromium\src\build\gyp_environment.py", line 33, in SetEnvironment
vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs()
File "D:\Chromium\chromium\src\build\vs_toolchain.py", line 73, in SetEnvironmentAndGetRuntimeDllDirs
os.environ['GYP_MSVS_OVERRIDE_PATH'] = DetectVisualStudioPath()
File "D:\Chromium\chromium\src\build\vs_toolchain.py", line 139, in DetectVisualStudioPath
' not found.') % (version_as_year))
Exception: Visual Studio Version 2013 (from GYP_MSVS_VERSION) not found.
Error: Command 'D:\\Chromium\\depot_tools\\depot_tools\\python276_bin\\python.exe src/build/landmines.py' returned non-zero exit status 1 …
Run Code Online (Sandbox Code Playgroud) 当我使用以下基于 Swift 4 闭包的 KVO 方式时,我在 iOS 10 设备上崩溃了
class A: NSObject {
@objc dynamic var value: Int = 0
var observation: NSKeyValueObservation?
override init() {
super.init()
// Crash
self.observation = self.observe(\A.value, options: [.new], changeHandler: { (_, change) in
})
}
}
var a: A? = A()
a = nil
Run Code Online (Sandbox Code Playgroud)
崩溃信息:
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“A 类的实例 0x 已被释放,而键值观察者仍向其注册。当前观察信息:(上下文:0x,属性:0x>
我用谷歌搜索了一下,发现这是一个 Swift 错误:https : //bugs.swift.org/browse/SR-5816,解决方法是在里面添加以下几行deinit
deinit {
if #available(iOS 11.0, *) {
} else {
if let observation = self.observation { …
Run Code Online (Sandbox Code Playgroud) 我制作了一个名为 Newsprompt 的 chrome 扩展:个人突发新闻(gcajgpbafhkbkdpbaaipjoiajnangjhp)最近被删除,声明它违反了“单一用途的 Chrome 扩展政策”。它在新标签中显示突发新闻,并不断了解用户偏好以推送用户感兴趣的文章(不是新闻)。没有添加,没有隐藏功能。这就是扩展所做的全部。自从它被撤下以来,我一直在跟进 chromewebstore-dev-support@google.com 并删除了很多功能(个性化就是其中之一),但所有这些功能都从文档中复制粘贴了完全相同的行https://developer.chrome.com/extensions/single_purpose不符合他们的标准。感觉就像与一个机器人交谈,它的唯一反应是“它不符合标准”。所以我的问题是:
1. 有没有开发人员遇到过同样的问题?(我看到一些开发人员在 google 组上抱怨,但没有人得到解决方案)。如果是的话,他们是如何解决/升级问题的(感觉就像白白浪费了我团队 6 个月的努力)。
2. 我试过https://support.google.com/chrome_webstore/contact/developer_support但没有反应。
3. 任何进一步的线索将不胜感激。
我正在尝试构建一个促进CRUD操作的工具,即Chrome中的IndexedDB GUI.当我在chrome dev工具面板中打开数据库连接时,我发现它为panel.html提供了一个单独的IndexedDB存储.Panel无法访问当前页面的数据库.
我们有什么方法可以从chrome dev工具的扩展面板访问页面的数据库.
javascript google-chrome google-chrome-extension google-chrome-devtools indexeddb
自Chrome 40以来,Chrome扩展程序的选项页面已具有第2版。我尝试创建一个带有一个简单按钮的选项V2页面alert
:
js
function resetAll() {
alert("Not yet implemented.");
}
document.getElementById("reset-button").onclick = resetAll;
Run Code Online (Sandbox Code Playgroud)
html
<button id="reset-button">Reset All</button>
Run Code Online (Sandbox Code Playgroud)
当我单击选项页面中的按钮时,什么也没有发生。我什至拉起了Javascript调试器,看看我的代码是否真正在运行。确实如此,但是没有任何警报出现。
如果我使用的是Chrome扩展程序的较早的选项页面格式,则警报会毫无问题地显示。
有没有办法alert
用OptionsV2 创建浏览器本机?
假设我有以下 DOM 结构和脚本
var test = document.getElementById('test');
test.parentNode.innerHTML += 'hello';
console.log(test.parentNode); // null
console.log(document.getElementById('test').parentNode); // normal result
Run Code Online (Sandbox Code Playgroud)
<div>
<div id="test"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
正如上面的脚本所说,第一个输出null
而第二个输出实际节点,有谁知道为什么第一个输出null
而不是普通节点?