我一直在Chrome扩展程序的选项页面上放置一个页面操作。 Private Sub Sample()
Dim cb As CommandBar
Dim cbc As CommandBarControl
Dim newitem As CommandBarControl
Dim newSubItem As CommandBarControl
Set cb = Application.CommandBars(1)
'~~> Delete Existing command bar control
On Error Resume Next
cb.Controls("Menu Items").Delete
On Error GoTo 0
'~~> Re Create the Command Bar Control
Set cbc = cb.Controls.Add(Type:=msoControlPopup, temporary:=False)
With cbc
'~~> Main Heading
.Caption = "Menu Items"
'~~> First Sub Heading
Set newitem = .Controls.Add(Type:=msoControlPopup)
With newitem
.BeginGroup = True
.Caption = "East Region Options"
Set newSubItem = .Controls.Add(Type:=msoControlButton)
With newSubItem
.BeginGroup = True
'~~> Sub Item
.Caption = "Sub Item for East Region Options"
.Style = msoButtonCaption
.OnAction = "SomeMacro"
End With
End With
'~~> Second Sub Heading
Set newitem = .Controls.Add(Type:=msoControlPopup)
With newitem
.BeginGroup = True
.Caption = "West Region Options"
Set newSubItem = .Controls.Add(Type:=msoControlButton)
With newSubItem
.BeginGroup = True
'~~> Sub Item
.Caption = "Sub Item for Est Region Options"
.Style = msoButtonCaption
.OnAction = "SomeMacro"
End With
End With
'
'~~> And So On
'
End With
End Sub
调用options.js
,chrome.runtime.connect({"name":"someName"})
调用
background.js
不幸的是,在新的options_ui中,推荐使用默认值(有一天必需)chrome.runtime.onConnect.addListener(function(port) {
chrome.pageAction.show(port.sender.tab.id);
});
,the Sender's tab won't be set。有没有办法获取标签ID以显示页面操作?
我可以使用tabs.query来获取"open_in_tab":false
标签,但这需要chrome://extensions/
权限,我目前不需要。活动选项卡似乎可以工作,但它不提供选项卡ID,并且未通过打开选项对话框(source)启用。
(为什么我要在我的选项页面上进行页面操作?扩展程序适用于每年只有7到10周可用的网站。我希望我的用户能够与扩展程序进行交互,其余的当时,他们可以习惯这个过程。但我不想调整显示的扩展权限只是为了这样做。我可以通过让选项页假装成有问题的网站来实现这一点。)< / p>