用Firefox插件保存网页,使用file ->保存为弹出窗口
Save web pages with Firefox addon using file -> save as pop-up window
让我先说一下,我是一个外挂开发新手。使用附加组件SDK,我试图创建一个简单的Firefox附加组件,当按下按钮时,就像按Ctrl-S热键一样,或者按照文件->保存页面来获得保存页面弹出窗口。我在这里看过类似的问题,但他们似乎是围绕内置的保存功能,而不是利用"保存页面为"窗口。
最终目标是在save调用之前运行其他函数。用户将只看到正常的保存页面窗口。
我不知道如何发送热键信号,或从附加组件内访问文件下拉菜单。
这样做的一种方法是调用Save As对话框,就好像用户点击了"Save Page As…"菜单项(id="menu_savePage"
)一样。您可以通过执行该菜单项的doCommand()
方法来实现这一点。下面假设传入的event
是用户点击按钮的command
事件。
function launchSaveAsFromButton(event) {
var window = event.view;
//Create some common variables if they do not exist.
// This should work from any Firefox context.
// Depending on the context in which the function is being run,
// this could be simplified.
if (window === null || typeof window !== "object") {
//If you do not already have a window reference, you need to obtain one:
// Add a "/" to un-comment the code appropriate for your add-on type.
//* Add-on SDK:
var window = require('sdk/window/utils').getMostRecentBrowserWindow();
//*/
/* Overlay and bootstrap (from almost any context/scope):
var window=Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow("navigator:browser");
//*/
}
if (typeof document === "undefined") {
//If there is no document defined, get it
var document = window.content.document;
}
if (typeof gBrowser === "undefined") {
//If there is no gBrowser defined, get it
var gBrowser = window.gBrowser;
}
let menuSavePage = gBrowser.ownerDocument.getElementById("menu_savePage");
menuSavePage.doCommand();
}
通过结合使用DOM检查器和附加元素检查器,可以更容易地找到"Save Page As…"对话框的ID
相关文章:
- Extjs 4在父窗口关闭时保存checkboxGroup的状态
- 如何保存和设置窗口.pageYOffset with shadowbox.js.
- Javascript:保存和恢复浏览器窗口大小
- 像cookie这样的全局变量,它在回发后保留值,但应该为不同的实例保存不同的值(选项卡/窗口)
- 保存按钮未附加到右侧信息窗口,谷歌地图
- 在文件保护程序.js中保存文件后关闭窗口
- 从“选项”弹出窗口中选择一个值,然后将其保存到 Chrome.storage,以便在后台脚本中用作值
- 预防保存弹出窗口的默认在 chrome 中工作,但在火狐中不起作用
- 需要使用 JSPDF 和自动表 JS 使用另存为弹出窗口将 PDF 保存到本地驱动器,同时将 HTML 表数据导出为 P
- 如何保存.pdf没有 url 的浏览器窗口中弹出的文件
- 如何使用Jquery在浏览器中保存cookie时点击按钮窗口重新加载
- 下载图片或在单击按钮时显示图片的保存弹出窗口
- 弹出窗口保存在本地存储中
- 为什么在写入新的空白窗口时不能保存页面
- Chrome:JavaScript窗口.打开即可保存
- Titanium保存最后查看的窗口的状态
- 在带有模态窗口实例的 Angular JS 中保存和下一步
- 用户点击弹出窗口上的保存按钮刷新主窗口
- 禁用iPhone“;保存图像”;弹出窗口
- Javascript读取先前在保存窗口上打开的选项卡html