精华内容
下载资源
问答
  • 假设要复制的html元素是这样的: <div id="container"> <h1>奥宏科技</h1> <p>一切为了再生产个</p> </div> 如果使用js的createRange接口直接选择container,执行复制,那么复制

    有时候我们复制html到word,在word中会出现边框.
    word提供了一个选择性粘贴方案,可以去掉样式,但是这不好,我们复制html,希望尽可能的包浏样式.

    实际上会出现边框,是div层级的锅.
    假设要复制的html元素是这样的:

    <div id="container">
    <h1>奥宏科技</h1>
    <p>一切为了再生产个</p>
    </div>
    

    如果使用js的createRange接口直接选择container,执行复制,那么复制到word中,第二行开始会有一个边框,

    经过我的测试,如果复制的时候,container没有被复制走,里面的内容被复制了,那么不会出现边框.

    问题明朗了,我们可以直接使用Range对象选择里面的子类,但是在谷歌下比较麻烦,因为谷歌浏览器不能多次addRange,其实这可以通过css控制,
    container设置cssuser-select:none,给container的子类设置cssuser-select:all,这样在执行复制的时候,container不会被选中,里面的被选中,复制到word中就不会出现表格了.

    展开全文
  • 本人按照公司领导要求,去网上找一个公司软件工程质量管理体系说明的说明书 但是 1、下载需要下载券,我又不是经常下载,开通vip不舍得 ...3、下面就完整的文档内容,可以复制的!哈哈哈,不用钱 ...

    本人按照公司领导要求,去网上找一个公司软件工程质量管理体系说明的说明书

    但是

    1、下载需要下载券,我又不是经常下载,开通vip不舍得

    2、复制又复制不了

     

    解决方案

    1、把这个文档的名称,完完整整的输入到百度搜索框里

    2、仔细看这里有一个百度快照,点击百度快照

    3、下面就有完整的文档内容,可以复制的!哈哈哈,不用钱

     

     

    展开全文
  • 今天收到客户改进意见,原本我们一个批量上传excel文档的功能,后台进行数据验证,验证数据某行某列错误时,会将错误信息以数组形式返回给前端。 原本我实现方法是在前端直接遍历后端返回报错消息,...

    今天收到客户的改进意见,原本我们有一个批量上传excel文档的功能,后台进行数据验证,验证数据某行某列有错误时,会将错误信息以数组的形式返回给前端。

    原本我的实现方法是在前端直接遍历后端返回的报错消息,进行拼接,将某行、某列的错误信息这样直接用NoticeProvider中封装好的方法展示出来,实现的代码如下(typescript):

    ......
    import { NoticeProvider } from '../../../../../../providers/common/utils/notice';
    
    
    @Component({
      selector: 'app-add',
      templateUrl: './add.component.html',
      styleUrls: ['./add.component.scss']
    })
    export class AddComponent implements OnInit {
      ......
      fileList = [];
      fileInfoList = [];
    
      constructor(
         ......
        private notice: NoticeProvider,
      ) {
         ......
      }
    
      ngOnInit() {
        ......
      }
    
    
    
      /**
    * 开始、上传进度、完成、失败都会调用这个函数。
    */
      handleChange({ file, fileId, fileName, filePath }): void {
        const status = file.status;
        if (status === 'done') {
          if (file.response.status === 0) {
            this.notice.info('上传成功');
            this.fileList.forEach(item => {
              fileId = item.response.data.id;
              fileName = item.name;
              filePath = item.response.data.url;
            });
            this.fileInfoList.push({ fileId, fileName, filePath });
            file.response.data.successList.forEach(item => {
              this.priceConfirmReqs.push(item);                    // 保存上传的文件内容
            });
          } else if (file.response.status === 90001) {
            this.notice.error(file.response.message);
          } else {
            const errorRowMes = [];
            file.response.data.errorList.forEach(element => {
              const errorCloMes = [];
              element.errorFields.forEach(element1 => {
                errorCloMes.push('第' + (element1.cellIndex + 1) + '列:' + element1.column + element1.errorMessage);
              });
              errorRowMes.push('第' + (element.rowIndex) + '行:' + '【' + errorCloMes + '】' + '<br>');
            });
            this.notice.error('上传失败,原因:' + errorRowMes);
            this.fileList.splice(this.fileList.length - 1, 1);
          }
        }
      }
    
      ......
    }
    

    其中this.notice.error的效果是直接在网页上方弹出提示信息,几秒种后就会消失。

    客户提出意见,说网页上方弹出提示的效果不是很方便,当上传了几百几千条数据,提示框中的内容会非常多,往往还没有看清楚所有的报错消息,提示框就消失了,这样不利于他们的修改。

    原本我们的最优解决方案是将用户导入的Excel表格,在每一个错的单元格中标红,再返回给用户,但是后端小哥哥说现在这个功能没时间实现,所以提出第二个解决方案,就是前端使用模态框弹出报错信息,因为模态框弹出后,用户自己点击关闭才会消失,而且模态框中想要有一个一键复制的按钮,点击后就可以将错误信息拷贝出来供修改。

    这样就要用到NzModalService的功能了,我们新写一个页面,用作模态框的内容展示,在导入的页面上(上级页面)将报错信息传给模态框:

    首先上级页面,也就是导入页面我们这样处理:

    ......
    import { NzModalService, UploadFile } from 'ng-zorro-antd';
    import { ErrorRowMesComponent } from './error-row-mes/error-row-mes.component';
    
    @Component({
      selector: 'app-add',
      templateUrl: './add.component.html',
      styleUrls: ['./add.component.scss']
    })
    export class AddComponent implements OnInit {
    
    
      ......
      fileList = [];
      fileInfoList = [];
    
      constructor(
        private modalService: NzModalService,
        ......
      ) {
      }
    
      ngOnInit() {
        ......
      }
    
      ......
    
      /**
    * 开始、上传进度、完成、失败都会调用这个函数。
    */
      handleChange({ file, fileId, fileName, filePath }): void {
        const status = file.status;
        if (status === 'done') {
          if (file.response.status === 0) {
            this.notice.info('上传成功');
            this.fileList.forEach(item => {
              fileId = item.response.data.id;
              fileName = item.name;
              filePath = item.response.data.url;
            });
            this.fileInfoList.push({ fileId, fileName, filePath });
            file.response.data.successList.forEach(item => {
              this.priceConfirmReqs.push(item);                    // 保存上传的文件内容
            });
          } else if (file.response.status === 90001) {
            this.notice.error(file.response.message);
          } else {
            const errorRowMes = [];
            file.response.data.errorList.forEach(element => {
              const errorCloMes = [];
              element.errorFields.forEach(element1 => {
                errorCloMes.push('第' + (element1.cellIndex + 1) + '列:' + element1.column + element1.errorMessage);
              });
              errorRowMes.push('第' + (element.rowIndex) + '行:' + '【' + errorCloMes + '】' + '<br>');
            });
            // 弹窗提示报错信息
            this.modalService.create({
              nzTitle: '上传失败',
              nzContent: ErrorRowMesComponent,
              nzWidth: 600,
              nzFooter: null,
              nzComponentParams: {
                data: {
                  errorRowMes: errorRowMes
                }
              },
            });
            this.fileList.splice(this.fileList.length - 1, 1);
          }
        }
      }
      ......
    }
    

    弹出的模态框即显示ErrorRowMesComponent组件中的内容,这个弹出的页面我们这样处理:

    import {
      Component,
      OnInit,
      Input
    } from '@angular/core';
    import * as _ from 'lodash';
    import { NzModalRef } from 'ng-zorro-antd';
    import { NoticeProvider } from '../../../../../../../providers/common/utils/notice';
    
    @Component({
      selector: 'app-error-row-mes',
      templateUrl: './error-row-mes.component.html',
      styleUrls: ['./error-row-mes.component.scss']
    })
    export class ErrorRowMesComponent
      implements OnInit {
      errorRowMes = '';
      @Input()
      set data(value: any) {
        this.errorRowMes = value.errorRowMes;
      }
    
      constructor(
        private modal: NzModalRef,
        private notice: NoticeProvider
      ) {
      }
    
      ngOnInit(): void {
      }
    
      doCopy(errorRowMes) {
        const oInput = document.createElement('input');
        oInput.value = errorRowMes;
        document.body.appendChild(oInput);
        oInput.select();
        document.execCommand('Copy');
        oInput.style.display = 'none';
        this.notice.success('复制成功');
    }
    
      /**
       * 取消
       * @param e
       */
      handleCancel() {
        this.modal.destroy({ data: null });
      }
    }
    

    其中:

    @Input()
      set data(value: any) {
        this.errorRowMes = value.errorRowMes;
      }

    是从上级页面接收了报错的消息到模态框页面中。

    一键复制的方法我们这样实现,将以下方法绑定到按钮即可:

    doCopy(errorRowMes) {
        const oInput = document.createElement('input');
        oInput.value = errorRowMes;
        document.body.appendChild(oInput);
        oInput.select();
        document.execCommand('Copy');
        oInput.style.display = 'none';
        this.notice.success('复制成功');
    }
    

    注意我们在html中,想要实现上级传过来的一些展示的样式,最好使用innerHTML进行展示:

    <div class="ql-editor" [innerHTML]="errorRowMes"></div>

    实现的效果如下图所示:

    展开全文
  • 在两次复制之间,如果两个用户同时编辑或多个用户编辑了不同数据库复本上相同文档,就会出现复制冲突。如果两个或多个用户同时编辑同一个数据库同一个文档,则会出现保存冲突。 解决方法: 一、可以在表单...

    问题:运行在服务器上以及有多个复本的数据库难免会出现复制与保存冲突的情况。如何处理这种情况是所有Notes管理员和设计者都要面对的问题。

    复制与保存冲突可由以下原因造成:

    在两次复制之间,如果有两个用户同时编辑或多个用户编辑了不同数据库复本上的相同文档,就会出现复制冲突。如果有两个或多个用户同时编辑同一个数据库的同一个文档,则会出现保存冲突。

    解决方法:

    一、可以在表单属性框中的基本付签选中:“合并复制冲突”,并知底功能表单基本付签中的版本选项。

    二、在这里介绍一些和处理复制与保存冲突情况有关的方法与技巧:

    1、创建列出所有冲突文档的视图:(VewConflict)冲突文档都包含一个名为“$Conflict”的域,因此可以用下面的试图选择公式列出所有冲突文档。

     

    1 SELECT @ISAvailable("$Conflict")

     

     

    2、将冲突文档与主文档同屏显示以便比较两者之间的差别:由于冲突文档被保存为主文档的答复文档,在打开冲突文档以后使用快捷图标“显示/隐藏预览主文档”,主文档就会被显示在预览窗格中了。

    3、附加菜单命令比较两个文档之间的差别:在Notes.ini文件中加入下面一行:

    AddInMenus=C:\Notes\nntediff.dll

    然后重起Notes,就回发现“操作”菜单中多了一项“Different of 2 document”.  

    4、找到冲突文档的主文档:

    Sub Click(Source as Button)

    Const FolderName="ReplicationConFlict"

    dim s As New NotesSession

    dim doccol as NotesDocumentCollection

    dim doc as Notesdocument,topdoc as notesdocument

    dim folder as notesView

    set dbcur=s.currentdatabase

    set doccol.dbcur.unprocesseddocuments

    set doc=doccol.getfirstdocument

    while not(doc is nothing)

    set topdoc=gettopdoc(doc)

    call topdoc.putinfolder(Foldername)

    set doc=doccol.getnextdocument(doc)

    wend

    End Sub

    Function GetTopDoc(DocSource as notesDocument) as NotesDocument

    dim doctop as notesdocument dim strUNID as String

    set doctop=docsource

    strUNID=doctop.ParentDocumentUNID  

    Do While (strUNID<>"")

    set DocTop=dbCur.GetDocumentByUNID(StrUNID)

    strUNID=doctop.ParentdocumentUNID

    loop

    set GetTopDoc=doctop

    End Functiong  

      

    5、将冲突文档保存为主文档选种若干冲突文档后运行下面代理。这个代理把选种的冲突文档保存为主文档。

    dim s as new notessession

    set db=s.currentdatabase

    set dc=db.unprocessedDocuments

    set doc=dc.getfirstdocument '$conflict是冲突文档的标志

    call doc.removeItem("$Conflict") '得到冲突文档的主文档

    if doc.isResponse then

    Set Parent=db.GetDocumentByUNID(doc.ParentDocumentUNID)

    if parent.IsResponse then '如果文档是答复的答复

    dim GrandParant as Notesdocument

    Set GrandParant=db.GetDocumentByUNID(Parent.ParentDocumentUNID)

    call doc.MakeResponse(GrandParent) else '$Ref 域是答复文档的标志

    call doc.RemoveItem("$Ref")

    end if

    end if

    call doc.save(True,True)  

    当使用LS在后台创建文档的时候,表单中“合并复制冲突”选项无效,在文档中加入下面代码: doc.$Conflicts="1"  

     

    展开全文
  • 这篇随笔文字解释大多数是从网站直接复制下来,以便于更快理解,具体使用方法以及插件下载请进入具体网站。如插件可以留言一起学习。 1. jQuery全屏滚动插件fullPage.js fullPage.js 是一款...
  • VS2013取消了MSCOMM串口控件,如果还想用该控件...补充:串口号可以更改是一个优势,另外有的电脑你把那四个文件复制后,是可以自动完成注册,所以最好先试一试看能不能使用,不能使用话再新建注册表项。2.新建多个
  • 个人该情况说明:我是将之前用过noteexpress插入文献的部分文字复制粘贴到了我新的文档中,然后在新的文档用noteexpress插入引文时报了这个错误。 解决方法:就是将之前复制过来的文字附带引文(如[1],[2]等)字样...
  • 在编辑文档过程中,复制文本是十分频繁的操作,有时需要从 Word 之外复制,有时仅在 Word 的文档之间复制,有时只在单个文档内部复制。电脑中已经的文本通过复制能大大提高工作效率,输入文本毕竟是十分浪费时间的...
  • 我想在 "group1currency1" 里输入一个数据 比如USD,然后点击下面按钮,将"group1currency1"里内容复制到”outputcurrency1“。 下面是我代码,我尝试了很多次都不成功, 希望人能帮助我 ``` <!...
  • 分享一些前端使用UI框架,详细框架说明请复制链接进入官网查看,小编只做汇总Vantui 基于vue移动端UI框架,适合商城项目,支持H5和小程序两个版本https://youzan.github.io/vant/#/zh-CN/introCube UI 基于 ...
  • Chrome+IE默认支持粘贴剪切板中图片,但是我要发布...我希望打开Word或者WPS文档后,复制内容然后直接粘贴到富文本编辑器中,编辑器自动将图片批量上传到服务器中,无论文档多少张图片,编辑器都全部自动上传,不
  • Chrome+IE默认支持粘贴剪切板中图片,但是我要发布...我希望打开Word或者WPS文档后,复制内容然后直接粘贴到富文本编辑器中,编辑器自动将图片批量上传到服务器中,无论文档多少张图片,编辑器都全部自动上传,不
  • 如何在Word文档中粘贴行号代码

    千次阅读 2019-05-20 15:56:50
    我们如何在Word文档中粘贴的代码像下图所示: 第一步:进入网站:http://www.planetb.ca/syntax-highlight-word 第二步:将代码粘贴到如图所示的内 ... Ctrl+A(全选)全选所要复制的代码 Ctrl...
  • 1.Word文档编辑技巧 如何启动及退出Word,认识Word界面组成,设置简单格式,在Word中切换输入法及特殊功能键的使用,如何在Word中新建、保存以及打开已有的文档 主要知识点:段落的特殊格式、间距、行距,字体和颜色...
  • 因为公司业务需要支持IE8 ,网上其实很多富文本,效果都很好。 例如www.wangEditor.com 但试了一圈都不支持IE8 。 所以回到Ueditor,由于官方没有维护,新neuditor 也不知道什么时候能支持word自动转存,...
  • 公司做项目需要用到粘贴Word功能。就是将word内容一键粘贴到网页编辑器(在线富文本编辑器)中。...网上找了很久,大部分都一些不成熟问题,皇天不负有心人终于让我找到了一个成熟项目。 1、前端引用代码 ...
  • 如何下载学习通上的文档、课件?

    万次阅读 多人点赞 2020-03-07 15:13:27
    1.打开课件所在页面,F12显示源代码界面,Ctrl+F搜索在小里输入objectid 2.复制下后面id字符串,页面上几个文件就几个id,像我这里两个课件 ...
  • 超级影响力Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关那些方面,以便更充分地注意与当前目标有关方面。抽象并不打算了解全部问题,而只是选择其中一部分,暂时不用部分细节。...
  • 在这里记录一下如何将不能复制的文字复制下来 方法一、 1、在网页上选中你需要的文字,可以看到选中文字后会“复制”、“发送到手机”、“搜索”和“翻译” 2、我们点击“翻译”选项,会出现由百度翻译给出的...
  • 百度豆丁文档免费下载神器

    万次阅读 多人点赞 2019-05-10 11:35:33
    平常我们下载百度收费文档都需要VIP才能下载,这里推荐一款下载神器,下载百度文库文档及豆丁收费文档均可免费下载,...使用方法:将需要下载的文档地址复制到搜索,下载即可。 就是这个样子的。 二、这里还有...
  • *在学习和工作中,时候会遇到word文档没有保存就关闭了,针对这种...九、在弹出的对话框的红色内粘贴刚刚复制的地址,并点击打开: 十、找出之前未保存的文件夹并打开: 十一、找到未保存文件的ASD文件,单击.
  • 特此免费授予获得该软件和相关文档文件(“软件”)副本任何人无限制使用软件权利,包括但不限于使用,复制,修改,合并权利,发布,分发,再许可和/或出售本软件副本,并允许具备软件人员这样做,但须...
  • element-ui基本使用还是十分简单,首先根据文档的步骤进行安装,导入需要样式即可,这...然后点开详细代码,复制到你.vue文件里那么就可以了,例如直接复制官方提供radio组件(链接)第一个代码:可以看出...
  • 从网上复制下来的文档,每段文字的开头总这样的两个小方框□□; 点击“开始”——“段落”; 打开“段落”对话框,选择“中文版式”选项卡,点击“选项”按钮; 打开“word”选项对话框,选择“显示”选项卡,将...
  • Preferences,复制圈起的链接,到自己的文档资源管理器中,粘贴到快速访问中找到JavaScript.docset 找到文件后,可以看到个react-main.xxxxxx.js的文件,直接删除就可以了,再次启动Zeal,问题就解决了。...
  • 就是把左侧两个图粘贴到右侧文档中,结果,第一个图直接复制粘贴是正常,直接拖曳也没问题。 第二张图就问题了,图片粘贴位置确实个占位符,但只是个白色小框框,其他什么也不现实,直接拖曳过来,也是这样...
  • 目前实用数据库框架四种,都列出来方便下载重温 一:OrmLite 优点: 1.轻量级;2.使用简单,易上手;3.封装完善;4.文档全面。缺点:1.基于反射,效率比较低 jar包 地址:http://ormlite.com/releases/ 集成...
  • 编按:工作中,经常需要将Word中指定某些文本提取到Excel中,便于汇总及分析,一个一个复制粘贴,非常不方便,今天小编教你两个快捷方法,省心省力,一起来看看吧!学习更多技巧,请收藏关注部落窝教育word图文...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 560
精华内容 224
关键字:

复制的文档有框