Javascript 使用Chrome 35及以上版本启用非PlayStore用户脚本

Javascript 使用Chrome 35及以上版本启用非PlayStore用户脚本,javascript,google-chrome,google-chrome-extension,userscripts,Javascript,Google Chrome,Google Chrome Extension,Userscripts,由于Google Chrome的第35版,在Google的PlayStore之外安装的任何扩展的执行都被阻止,无法从扩展菜单启用 非商店脚本的自动安装在两年前被删除,但下载脚本并在extensions菜单上执行拖放操作仍然允许安装,因此仍然可以为Google的Chrome创建和共享脚本。但现在一切都锁上了 是否可以手动向独立脚本添加权限 可以将个人网站列入白名单吗 还有其他解决办法吗 我知道这一限制不适用于dev和canary发布频道,但脚本的目的是让有足够知识的用户知道他们在做什么,而不强

由于Google Chrome的第35版,在Google的PlayStore之外安装的任何扩展的执行都被阻止,无法从扩展菜单启用

非商店脚本的自动安装在两年前被删除,但下载脚本并在extensions菜单上执行拖放操作仍然允许安装,因此仍然可以为Google的Chrome创建和共享脚本。但现在一切都锁上了

  • 是否可以手动向独立脚本添加权限
  • 可以将个人网站列入白名单吗
  • 还有其他解决办法吗
我知道这一限制不适用于
dev
canary
发布频道,但脚本的目的是让有足够知识的用户知道他们在做什么,而不强迫他们更改浏览器。本机支持在Chrome上相当复杂(即使现在完全锁定),因此没有第三方插件(即:Tampermonkey)的解决方案更好


谢谢

不幸的是,除了像Tampermonkey这样的扩展之外,似乎没有好的解决办法,因为您的脚本为每个用户生成的方式不同

这是我找到的最好的解释:


除了安装像Tampermonkey这样的扩展或获得不同的浏览器之外,剩下的唯一方法似乎是使用
--启用简易店外扩展安装
标志启动Chrome浏览器

编辑:不幸的是,谷歌

但是,如果用户(或任何程序)在没有此标志的情况下启动Chrome一次,脚本将自动禁用。即使使用正确的标志,也不能重新启用它们;您唯一的选择是卸载它们并重新安装,然后以简易商店外扩展安装模式进行安装

因此,您的选择是:

  • 。如果已将Chrome固定到Windows 7中的任务栏,则更改此快捷方式的命令行参数的方法是。
    如果已将Chrome设置为HTTP和HTTPS协议的默认协议处理程序(如果将Chrome设置为默认浏览器,则为这种情况),您可以这样做,每次程序尝试使用默认程序打开HTTP或HTTPS URL时,都会设置此标志。
    此外,请确保已设置此标志,例如
    .xht
    .htm
    .xhtml
    。 您可以使用以下
    .reg
    文件执行此操作:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command]
    @="\"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\" --allow-easy-off-store-extension-install -- \"%1\""
    

    安装此软件时,请确保Chrome的路径正确

  • 安装扩展(如)以管理用户脚本
  • 安装不同的浏览器,可以是Chrome浏览器,也可以是完全不同的浏览器,例如(具有)或(具有)
  • 在你收到版本35和风险被黑客
  • 切换到不同的操作系统,如
  • 如果您的计算机是Windows域的一部分,则可以
  • 将用户脚本转换为bookmarklet
  • 我意识到这可能不是你想听到的,但随着谷歌继续限制诚实的开发人员,因为一些坏玩家,没有更好的选择

    编辑:我发现还有一种方法正在发挥作用,即使用正确的权限劫持已安装的扩展:

  • 查找并安装一个扩展,该扩展具有在要运行内容脚本的网页上运行内容脚本的权限。例如,当为任何HTTP或HTTPS URI加载文档时,扩展具有插入用户脚本的权限
  • 转到扩展页以查找扩展的ID
  • 打开Chrome存储扩展的文件夹。在Windows上,这是
    %localappdata%\Google\Chrome\User Data\Default\Extensions
  • manifest.json
    中,找到注入脚本的名称和位置。用用户脚本覆盖此文件的内容。(对于作为示例选择的扩展,这是
    asset/stickies.js
  • 删除未在
    manifest.json
    中引用的扩展的任何内容。替换未在emtpy文件中使用的任何引用脚本和HTML页面。
    对于上述扩展,我将删除除图标、内容脚本、
    asset/stickies.css
    background.HTML
    之外的任何内容,然后替换后两个文件包含一个空文件
  • 转到Chrome扩展页面,禁用并重新启用扩展
  • 备份您的工作,以防扩展被更新
  • 在“扩展”列表中的某个地方记下扩展的内容已被用户脚本替换

  • 编辑:我验证此解决方案,因为它在这个问题上特别帮助了我。更丰富的答案是。即使他们没有解决我的具体问题,也应该考虑他们

    多亏了,我终于找到了问题的答案,事实上,您仍然可以启用与PlayStore无关的脚本,而无需任何第三方插件,但正如您所看到的:使用TamperMonkey可能会更好(即使它可能意味着很少的修改,也会容易200%)

    解决方案是在开发者模式下导入未打包的用户脚本

    逐步解释
  • 像往常一样创建您的用户脚本
    myscript.user.js

  • 将其包含在一个目录中,并创建一个名为
    manifest.json
    的文件

    myscript/

    • manifest.json
    • myscript.user.js
  • manifest.json
    是在developer中将您的脚本作为Chrome扩展导入所需的文件。它描述了您的用户脚本。以下是相关代码,但我们的最低代码是:

    { "manifest_version":2, "version":"1.0", "name": "MyScript", "content_scripts": [ { "js": ["myscript.user.js"], "matches": ["http://domain.com/"] } ] }