确定活动选项卡是否包含可编辑的 Google 文档
Determine if active tab contains an editable Google Doc
假设我的扩展已经使用 How can I get the current tab URL for chrome extension? 中建议的方法获得了当前活动选项卡的 URL,例如
chrome.tabs.query({
active: true,
lastFocusedWindow: true
}, function (tabs) {
// use first tab to obtain url
var tab = tabs[0];
var url = tab.url
});
如何确定 URL 是否指的是我有编辑权限的 Google 文档?所有权和受邀合作者之间的区别对于此应用程序并不重要。我只对文档感兴趣,而不是电子表格或表单。
有关我正在尝试开发的内容的上下文,请参阅:How to manually generate notifications to a Google Doc collaborator?
这是一个 google 文档的并排视图,我在其中创建了一个文档,生成了一个共享 link,并在我未登录的浏览器中打开了它 google。我建议使用内容脚本插入一个 "find" 函数,如果它可以在 DOM("view only" 表示您没有编辑权限)。您可以使内容脚本仅匹配看起来像 docs.google.com/document/*
的 URL。
注意:google 更改 UI 非常频繁,因此这可能不是面向未来的。尝试在这两种情况下检查 google 文档的来源以寻找更多线索。
并排视图:
chrome devtools 中的源代码:
备选答案,基于 Google Drive API 而不是 Google 文档 UI。
在执行任何这些操作之前,请确保在清单中 declare permissions(只匹配看起来像 docs.google.com/document/*
的 URL)。
以下是您可以遵循的步骤的大致概述:
得到一个
文件,
这将 return 一些元数据。您可以使用 URL 提取 GET 请求中使用的相关 ID。
使用此元数据file
resource to retrieve a permissions
resource
- 在权限资源中,查看
role
属性:它将是 owner
、reader
或 writer
。如果您是 reader
,您将没有编辑权限,否则您应该有编辑权限。
假设我的扩展已经使用 How can I get the current tab URL for chrome extension? 中建议的方法获得了当前活动选项卡的 URL,例如
chrome.tabs.query({
active: true,
lastFocusedWindow: true
}, function (tabs) {
// use first tab to obtain url
var tab = tabs[0];
var url = tab.url
});
如何确定 URL 是否指的是我有编辑权限的 Google 文档?所有权和受邀合作者之间的区别对于此应用程序并不重要。我只对文档感兴趣,而不是电子表格或表单。
有关我正在尝试开发的内容的上下文,请参阅:How to manually generate notifications to a Google Doc collaborator?
这是一个 google 文档的并排视图,我在其中创建了一个文档,生成了一个共享 link,并在我未登录的浏览器中打开了它 google。我建议使用内容脚本插入一个 "find" 函数,如果它可以在 DOM("view only" 表示您没有编辑权限)。您可以使内容脚本仅匹配看起来像 docs.google.com/document/*
的 URL。
注意:google 更改 UI 非常频繁,因此这可能不是面向未来的。尝试在这两种情况下检查 google 文档的来源以寻找更多线索。
并排视图:
chrome devtools 中的源代码:
备选答案,基于 Google Drive API 而不是 Google 文档 UI。
在执行任何这些操作之前,请确保在清单中 declare permissions(只匹配看起来像 docs.google.com/document/*
的 URL)。
以下是您可以遵循的步骤的大致概述:
得到一个 文件, 这将 return 一些元数据。您可以使用 URL 提取 GET 请求中使用的相关 ID。
使用此元数据
file
resource to retrieve apermissions
resource- 在权限资源中,查看
role
属性:它将是owner
、reader
或writer
。如果您是reader
,您将没有编辑权限,否则您应该有编辑权限。