liziyu 发布的文章

上代码:

<iframe src="https://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fwww.liziyu.com%2Fupload%2Fuser%2F24%2Fe774c00b17cec277da41e8a765483b.docx" width='100%' height='500' frameborder='1'></iframe>

值得注意的坑以及解决方法
通过encode处理一下url地址,可以使用encodeURIComponent()方法
这个文件的服务器地址必须是域名,不可以使用ip地址,且端口需要是80

1、等号表达式是典型的赋值形式,函数传参和for循环的变量都是特殊形式的赋值。

解构的原理是赋值的两边具有相同的结构,就可以正确取出数组或对象里面的元素或属性值,省略了使用下标逐个赋值的麻烦。
对于三个点号,三点放在形参或者等号左边为rest运算符(剩余运算符);
放在实参或者等号右边为spread运算符(扩展运算符),或者说,放在被赋值一方为rest运算符,放在赋值一方为扩展运算符。

2、小结:

扩展运算符和rest运算符是逆运算;
扩展运算符:数组=>分割序列;
rest运算符:分割序列=>数组;

参照文章:https://zhuanlan.zhihu.com/p/59502528

第一步:

进入github.comhttps://github.com/eKoopmans/html2pdf.js 下载文件包;

第二步:

引入js文件 <script src="../dist/html2pdf.bundle.min.js"></script>
//只需要这一个文件即可

<script>
        function html2pdfs() {
            // Get the element.
            var element = document.getElementById('html2pdf_id');
            // Generate the PDF.
            html2pdf().from(element).set({
                margin: 1,
                filename: '自定义文件名.pdf',
                html2canvas: { scale: 2 },
                jsPDF: {orientation: 'portrait', unit: 'in', format: 'letter', compressPDF: true}
            }).save();
        }
    </script>

第三步:

添加html按钮与区块:
<button class="layui-btn layui-btn-sm" onclick="html2pdfs()">导出/打印本页</button>

<div class="layui-card-body" id="html2pdf_id">
//需要转换为pdf的正文
</div>

完毕!!

1、wangEditor

优势:开源,轻量简洁,最重要的是开源且中文文档齐全,设计的UI漂亮。
wangEditor基于javascriptcss开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费。
与国产编辑器 百度ueditorkindeditor 相比,它轻量、易用、UI设计精致漂亮。
国外编辑器 bootstrap-wysiwygsimditor 相比,它文档易读、交流方便,更接地气。
它还会根据使用者的反馈不断完善,未来将支持移动版。 支持IE6+浏览器。
不足:没有强大的后台
http://www.wangeditor.com/index.html

2、百度的ueditor

优势:开源,插件多,基本满足各种需求, 由百度web前端研发部开发。
不足:比较庞大,对于网页的加载来说,会相对影响速度 ,界面不太美观。
官方的wiki文档并不是很完善,图片只能上传到本地服务器,如果需要上传到其他服务器需要改动源码,较为难办,加载速度慢。

3、KindEditor

优势: 文档齐全 ,中文文档便于阅读理解, 界面类似百度,使用还算方便。
不足:存在图片上传问题,如果上传历史过多,会全部加载,导致浏览器卡,反应慢
兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。
KindEditor使用JavaScript编写,可以无缝的与Java、.NET、PHP、ASP等程序接合。

4、bootstrap-wysiwyg

优点:外观简洁大方,使用方便,支持网站充分利用Bootstrap、Font Awesome等工具库的优秀特性
没有强制规定的样式。
缺点:没有表情包 , 没有开发文档不便于阅读使用,无字体变色,无视频上传功能
http://www.bootcss.com/p/bootstrap-wysiwyg

5、simditor

优点:样式好看,插件不多,基本满足需求
缺点:文档英文,使用较为吃力,如果英文水平不好的话
github上面开源,维护较好
http://simditor.tower.im

6、CKEditor

国外开源,功能强大,使用较多,可以看他们官网的例子,马上就有感觉。
优点:编辑能力极强,基本和word差不多了。看起来界面极其优秀的一款。
缺点:网站访问速度一般,文档英文,需要花时间开发,没有字体变色和视频上传功能,需要另外配置
http://ckeditor.com

7、tinymce

支持图片在线处理,插件多,功能强
编辑能力优秀,界面好看。
同样文档为英文,开发需要花时间。
https://www.tinymce.com

原文:https://blog.csdn.net/sunshine_xtt/article/details/81457320

官网github上下载资源包,将资源包中的libs文件夹放置在项目根目录方便使用

https://github.com/smarty-php/smarty/releases/tag/v3.1.33

下面是实现代码

#eg.这个是静态化首页的
function staticIndex(){
$newslist = $article->getArticles(null,54,'DESC',1,6,false,1,2,'',0,0,1);
   if($newslist){
    foreach($newslist as $k=>$v){
     $newslist[$k]['title_all'] = $v['title'];
     $newslist[$k]['title'] = cutstr($v['title'],36,'…');
    }
    $smarty->assign('newslist',$newslist);
   }
$content = '';
$content = $smarty->fetch('index.html',true);//这是Smarty自带的生成静态页面的函数
$static_name = ROOT_PATH.'index.html';//这是生成静态页面当前的路径文件
fopen($static_name,'a');//打开这个文件
@file_put_contents($static_name,$content);//最后写进去
return true;
}
//静态化列表页,按类别不同经行静态化

function staticContent(){//需要静态话的条数
  $ids = array();//获取所有的内容
   $ids = $this->getListIds();//这个方法获取所有的内容,下面红字部分对应它的方法
   foreach($ids as $k=>$value){
    //echo $value['catid'];
    if(!file_exists(ROOT_PATH.'demo/')){//判断根目录下面有没有这个文件夹,如果没有则创建demo这个文件夹
     mkdir(ROOT_PATH.'demo/');
    }
     if(!file_exists(ROOT_PATH.'demo/'.$value['catid'])){//判断这个文件夹下面有没有对应的类别文件夹
      mkdir(ROOT_PATH.'demo/'.$value['catid']);
      }
     $html_content = $this->getDemoContent($value['demoid']);
     $static_name = ROOT_PATH.'demo/'.$value['catid'].'/'.$value['demoid'].'.html';
     fopen($static_name,'a');
     @file_put_contents($static_name,$html_content);
    }
  return true;
  }

  //拿出需要静态化的页面ID
function getListIds(){
   $sql = "select * from {$this->tablepre}demo order by demoid asc";
   $rs = $this->db->getAll($sql);
   if($rs){
     return $rs;
   }else{
   return false;
   }
}

//content单页静态化
function getDemoContent($id){
   global $smarty,$view_templates,$admin_templates;
   loadModel(array('demo'));
   $demo = new demo();
   $content = '';
   $smarty->template_dir = ROOT_PATH.$view_templates;
   $getMobanOne = $this->getMobanDetail($id);
   $mobandetail = $demo->MobanList($id);
    foreach($mobandetail as $k=>$v){
       $smarty->assign($k,$v);
       }
   $this->catid = $getMobanOne['catid'];
   $smarty->assign('pre_title',$mobandetail['membername']);
   $smarty->assign('mobandetail',$mobandetail);
   $content = $smarty->fetch('demo_show.html',true);
   $smarty->template_dir = ROOT_PATH.$view_templates;
   return $content;
}

感谢原作者的付出,本文转载至少:https://www.jb51.net/article/49317.htm

仅个人适用:

移动端:vant比较好
pc端:习惯用element
还有些不错的:
pearAdminlayuieleAdmin也不错。

能看懂的就收藏吧!~