请使用手机微信扫码安全登录

切换账号密码登录

绑定手机号

应国家法规对于账号实名的要求,请您在进行下一步操作前,需要先完成手机绑定 (若绑定失败,请重新登录绑定)。了解更多

不绑定绑定手机号

360官网 | 360商城

推荐论坛版块活动360粉丝商城众测粉丝轰趴馆常见问题
浏览器版本: 13.0.2206
问题:在扩展中调用chrome.bookmarks.move会报错,提示"Unchecked runtime.lastError: Bookmark id is invalid.", 同样的代码在chrome中能正常运行。并且Recursive Bookmark Sorter等移动书签的插件也无法正常工作

共 5 个关于书签扩展API不能正常调用的回复 最后回复于 2021-7-13 22:11

评论

直达楼层

沙发
体贴金 VIP认证 版主 发表于 2021-2-6 11:45 | 只看该作者 | 私信
感谢反馈,我转交给工程师核实一下这个情况
板凳
jiang_in 工程师 发表于 2021-2-7 17:22 | 只看该作者 | 私信
用谷歌浏览器什么情况,提供下测试步骤或扩展文件
地板
360fans_VpAzIt LV2.下士 楼主 发表于 2021-2-7 19:07 | 只看该作者 | 私信
1.用谷歌浏览器调用相关API是正常的。

最小化复现步骤:
1.创建一个扩展,在manifest文件中生声明bookmarks权限.
2.添加几个书签(保证下面调用的书签id存在)。
3.在扩展的background.js文件中运行以下代码
  1.   chrome.bookmarks.move("5", {
  2.     parentId: '2',
  3.         index: 0
  4.       }, function() {});
复制代码


另外可以尝试安装Recursive Bookmark Sorter,审查扩展页后执行排序操作,会没有效果并且报错。
完整代码如下
background.js
  1. // Copyright (c) 2010 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.

  4. // A generic onclick callback function.
  5. function genericOnClick(info, tab) {
  6.   console.log("item " + info.menuItemId + " was clicked");
  7.   console.log("info: " + JSON.stringify(info));
  8.   console.log("tab: " + JSON.stringify(tab));
  9. }

  10. const handleClick = (info, tab) => {

  11.   console.log("tab: " + JSON.stringify(tab));

  12.   chrome.bookmarks.getChildren('2', (data) => {
  13.     const linkList = data.filter(item => !!item.url)
  14.     const sortByHost = (a, b) => {
  15.       try {
  16.         const getHost = (url) => (new URL(url)).host

  17.         const getDomain = (host) => host.split('.').reverse()[1]
  18.                 console.log(getDomain(getHost(a.url)))
  19.         return getDomain(getHost(a.url)) > getDomain(getHost(b.url))
  20.       } catch(e) {
  21.         console.error(e)
  22.         return false
  23.       }

  24.     }
  25.     // chrome.bookmarks.move("2135", {index: 0, parentId: '1692'}, (data) => {
  26.     //   console.log(data)
  27.     // })
  28.     // linkList.sort(sortByHost)
  29.     // linkList.forEach(item => {
  30.     //   if (item.url) {
  31.     //       chrome.bookmarks.move(item.id, {
  32.     //         index: 0,
  33.     //       })

  34.     //   }
  35.     // })
  36.     console.log(linkList)
  37.   })
  38.   chrome.bookmarks.move("5", {
  39.     parentId: '2',
  40.         index: 0
  41.       }, function() {});
  42. }

  43. chrome.contextMenus.create({
  44.   title: '书签按域名排序',
  45.   contexts: ['page'],
  46.   onclick: handleClick
  47. })
复制代码


manifest.js
  1. {
  2.   "name": "Bookmark Plus",
  3.   "description": "Some ehancements of bookmark",
  4.   "version": "0.1",
  5.   "permissions": ["contextMenus", "bookmarks"],
  6.   "background": {
  7.     "scripts": ["background.js"]
  8.   },
  9.   "manifest_version": 2
  10. }
复制代码


辉煌之影 LV6.中尉 提示下,你回自己没用。 
2021-2-7 19:33回复
5
360fans_VpAzIt LV2.下士 楼主 发表于 2021-2-7 19:12 | 只看该作者 | 私信
1.用谷歌浏览器是正常的

2. 复现步骤
在浏览器扩展中调用
  1.   chrome.bookmarks.move("5", {
  2.     parentId: '2',
  3.         index: 0
  4.       }, function() {});
复制代码

"5"和"2"是书签Id, 可以通过chrome.bookmarks.getChildren来获取书签id。
6
360fans_u14916939 LV3.中士 发表于 2021-7-13 22:11 | 只看该作者 | 私信
我也遇到了相同的问题。创建时报错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

360fans_VpAzIt LV2.下士

粉丝:2 关注:0 积分:52

精华:0 金币:36 经验:51

最后登录时间:2021-2-11

360商城青铜会员

私信 加好友

最新活动

读书日主题活动 |  世界读书日,360AI阅读

排行榜

热度排行 查看排行
今日 本周 本月 全部
    今日 本周 本月 全部

      内容推荐 热门推荐最新主帖

      扫码添加360客服号,涨知识的同时还有超多福利等你哦

      快速回复 返回顶部 返回列表