gpt4 book ai didi

javascript - 使用 Firefox 插件保存网页,使用文件 -> 另存为弹出窗口

转载 作者:行者123 更新时间:2023-12-03 09:28:17 26 4
gpt4 key购买 nike

首先我要说的是,我是附加开发的新手。使用附加 SDK,我尝试创建一个简单的 Firefox 附加组件,当按下按钮时,其作用类似于按 Ctrl-S 热键,或按照文件 -> 保存页面来弹出保存页面上窗。我在这里看过类似的问题,但它们似乎是围绕内置的保存功能,而不是利用“页面另存为”窗口。

最终目标是在进行保存调用之前运行其他函数。用户将只能正常看到保存页面窗口。

我不知道发送热键信号或从附加组件内访问文件下拉菜单的方法。

最佳答案

一种方法是调用“另存为”对话框,就像用户单击“页面另存为...”菜单项 (id="menu_savePage")。您可以通过执行该菜单项的 doCommand() 方法来完成此操作。下面假设传入的事件是用户单击的按钮的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 Inspector 可以更轻松地查找“页面另存为...”对话框的 ID与附加组件 Element Inspector 结合使用.

关于javascript - 使用 Firefox 插件保存网页,使用文件 -> 另存为弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31593566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com