前端实现弹出“另存为”对话框的三种方式

本文介绍了三种在前端实现弹出“另存为”对话框的方法:1) 使用document.execCommand方法,但部分IE浏览器可能需要允许阻止的内容;2) 利用ActiveX控件,需客户端注册组件且对浏览器安全级别有要求;3) 通过第三方Web控件简化操作,提高开发效率。
摘要由CSDN通过智能技术生成

今天开发一个需求,需要将一段字符串保存到文件中,并且保存之后在页面上弹出“另存为”对话框来实现将文件保存到指定位置。那么应该如何来实现在前端弹出“另存为”对话框呢?

调用document.execCommand方法

调用js方法document.execCommand可在前台页面调出“另存为”对话框,并将将服务器上存放的文件保存到本地指定的位置。需要注意的是,部分IE浏览器中,可能会阻止显示内容,点击上方"允许阻止的内容“即可正常运行。
示例代码如下:

<script language='javascript' type='text/javascript'>
  function saveImg() {
    //将服务器上图片存放到本地的方法
    event.returnValue=false;
    show.window.location.href=img.src;
    timer=setInterval(saveAs,500)
  }

  function saveAs(){
    if(frame.readyState!="complete"){
        //'Saveas'表示打开“文件另存为”对话框命令
        frame.document.execCommand('SaveAs');
        clearInterval(timer)
    }
  }  
</script>
<img id="img" width="320px" height="200px" src="HelloWorld.jpg" alt=""/>
<input
  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
好的,根据您的需求,您需要一个能够记录鼠标点击事件、截屏并保为DOC文件的程序。以下是一个简单的Python程序示例,您可以根据自己的需要进行修改和优化。 ```python import tkinter as tk from tkinter import filedialog import pyautogui import datetime import docx class MouseRecorder: def __init__(self): self.root = tk.Tk() self.root.title("鼠标操作记录器") self.root.geometry("300x150") self.label = tk.Label(self.root, text="点击开始记录", font=("Arial", 20)) self.label.pack(pady=20) self.start_button = tk.Button(self.root, text="开始记录", command=self.start_recording) self.start_button.pack(side="left", padx=20) self.stop_button = tk.Button(self.root, text="停止记录", state="disabled", command=self.stop_recording) self.stop_button.pack(side="left", padx=20) self.quit_button = tk.Button(self.root, text="退", command=self.quit) self.quit_button.pack(side="right", padx=20) self.is_recording = False self.clicks = [] self.screen_shots = [] def start_recording(self): self.is_recording = True self.start_button.config(state="disabled") self.stop_button.config(state="normal") self.label.config(text="正在记录鼠标操作") self.root.after(100, self.record) def stop_recording(self): self.is_recording = False self.start_button.config(state="normal") self.stop_button.config(state="disabled") self.label.config(text="点击开始记录") self.save_record() def record(self): if self.is_recording: x, y = pyautogui.position() button = pyautogui.mouseInfo().split("\t")[1] clicks = pyautogui.clicks() self.clicks.append((datetime.datetime.now(), button, clicks)) self.screen_shots.append(pyautogui.screenshot()) self.root.after(100, self.record) def save_record(self): if len(self.clicks) > 0: file_path = filedialog.asksaveasfilename(defaultextension=".docx") if file_path: doc = docx.Document() doc.add_heading("鼠标操作记录", 0) for i, (time, button, clicks) in enumerate(self.clicks): doc.add_heading("鼠标点击{}:{}".format(i+1, time.strftime("%Y-%m-%d %H:%M:%S")), level=1) doc.add_paragraph("使用的鼠标键:{}".format(button)) doc.add_paragraph("单击/双击:{}".format("双击" if clicks == 2 else "单击")) doc.add_picture(self.screen_shots[i], width=docx.shared.Inches(6)) doc.save(file_path) def quit(self): self.root.destroy() if __name__ == "__main__": recorder = MouseRecorder() recorder.root.mainloop() ``` 这个程序使用了Tkinter库创建了一个简单的前端界面,可以通过点击"开始记录"按钮开始记录鼠标操作,点击"停止记录"按钮停止记录并保为DOC文件,点击"退"按钮退程序。在记录期间,程序会每隔100毫秒记录一次鼠标点击事件和截屏,保在`self.clicks`和`self.screen_shots`列表中。最后,将记录保为DOC文件时,使用`filedialog`库选择保路径并创建一个docx.Document对象,将所有记录添加为标题和段落,最后保为DOC文件。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wunianisme

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值