我想创建一个自动登录到我的服务器的扩展。所以我创建了一个后台页面来检查当前的URL,如果它符合我的URL正则表达式,我将显示页面动作图标。点击页面动作后,我打开一个带有一些字段的弹出窗口。我需要获取当前打开的URL并将其填充到弹出窗口的某个字段中(例如,当我们单击标准书签页面操作时,URL会自动填充到打开的弹出窗口中)。我如何在Chrome扩展中做这样的事情?我尝试从背景页面传递消息到弹出的HTML,但它不起作用。是否有可能发送这样的消息?此外,我尝试设置弹出的HTML文件的onload,但我注意到它没有触发。请提出一个合适的方法来处理这种情况。如何在我的页面动作弹出窗口中获取当前打开的选项卡的URL?
19
A
回答
43
使用chrome.tabs.query
以下参数:
- queryInfo对象:
active: true
- 为了让活动标签lastFocusedWindow: true
- 选择要激活的窗口
- 回调函数:
这个函数收到一个argum ent:匹配选项卡的数组。由于只有一个窗口可以处于活动状态,并且此窗口中有一个标签,因此该数组只有一个元素。该元素是Tab
signature的对象。
代码片段:
// Do NOT forget that the method is ASYNCHRONOUS
chrome.tabs.query({
active: true, // Select active tabs
lastFocusedWindow: true // In the current window
}, function(array_of_Tabs) {
// Since there can only be one active tab in one active window,
// the array has only one element
var tab = array_of_Tabs[0];
// Example:
var url = tab.url;
// ... do something with url variable
});
的activeTab
权限是足够的工作。
2
您还可以使用承诺检索选项卡的更清洁的方式:
getCurrentTab().then(function(tab){
// Do something w/tab
});
function getCurrentTab(){
return new Promise(function(resolve, reject){
chrome.tabs.query({
active: true, // Select active tabs
lastFocusedWindow: true // In the current window
}, function(tabs) {
resolve(tabs[0]);
});
});
}
相关问题
- 1. 在新选项卡/窗口中打开页面AND直接将当前窗口设置为新的url
- 2. 如何获取在选项卡中打开的页面
- 3. JavaScript打开/在新选项卡或窗口中显示当前页面
- 4. 打开窗口弹出窗口时,网页不切换选项卡。无法打开其他页面
- 5. 如何在弹出窗口中打开Struts2动作的JSP页面
- 6. 如何在打开弹出窗口时获取当前标签页的URL [无标签权限]
- 7. 如何使用jQuery/JavaScript打开弹出窗口/选项卡(ASPX登录页面),然后将值传递给DOM Ready事件中打开的窗口/选项卡?
- 8. 从Firefox扩展中打开当前选项卡/窗口中的URL
- 9. javascript:window.location.href在IE中打开firefox和新窗口中的新选项卡(而不是弹出窗口)。我想在同一窗口中打开页面
- 10. 如何在打开弹出窗口时停止滚动页面
- 11. 打开弹出窗口中易于打开的弹出窗口
- 12. Colorbox窗口打开顶端...如何获取当前页面的中心
- 13. 如何在新选项卡或窗口中打开iframe URL?
- 14. 如何在dotnetnuke中打开aspx页面如弹出窗口
- 15. 打开的网页新选项卡并刷新当前页面
- 16. 当扩展程序打开时,从Chrome中的当前选项卡获取URL?
- 17. 如何获取在jqModal窗口中加载的外部页面的当前URL?
- 18. 从父母上从iframe打开的弹出窗口中的新选项卡(在父级上)打开URL
- 19. 打开弹出窗口的直接URL?
- 20. 如何打开iframe中的重定向页面作为ASP.NET中父窗口中的新选项卡打开?
- 21. 当我的页面加载时,我的弹出窗口会多次打开
- 22. 从弹出窗口打开Chrome选项
- 23. 如何在弹出窗口中打开弹出窗口?
- 24. 如何使页面加载时自动打开弹出窗口?
- 25. 我想打开一个弹出窗口打开锚选项卡点击
- 26. 如何打开新选项卡中的弹出窗口,但将用户保留在调用者选项卡上?
- 27. JQM:弹出URL打开url并返回当前页面?
- 28. Chrome扩展程序:从弹出窗口获取当前选项卡
- 29. 如何强制在新窗口中打开弹出窗口(始终打开新选项卡中的弹出窗口)?
- 30. 在当前选项卡中打开新页面
谢谢你的答案罗布。但现在的问题是,如何在页面操作弹出窗口中运行此操作。我在弹出的HTML文件头部的脚本标记中尝试了这段代码,但是当我打开弹出窗口时它没有执行。无论如何,当弹出窗口打开时,我可以运行它? –
@JophinJoseph确保符合所有条件:1.应在清单文件中设置“tab”[许可](http://code.google.com/chrome/extensions/manifest.html#permissions)。 2.使用内联代码时,请确保['“manifest_version”:2'](http://stackoverflow.com/a/10417745/938089?communication-between-contentscript-js-and-chrome-extension)不存在于清单文件中。 [检查弹出窗口](http://code.google.com/chrome/extensions/tut_debugging.html#inspect-popup)查看是否显示任何错误。 –
谢谢Rob。这解决了我的问题。 –