首页 > 其他分享 >三十一、JS第三方插件

三十一、JS第三方插件

时间:2024-02-12 19:33:06浏览次数:24  
标签:function map 插件 地图 三十一 JS csrf document id

kindediter

# textarea,用于富文本输入
<textarea id="editor_id" name="content" style="width:700px;height:300px;"></textarea>
{% csrf_token %} #加入csrf_token,提交时,手动拿到token去提交
<button onclick="submit();">回复</button>
# 使用kindediter,引入相关js
    <script>window.jQuery || document.write('<script src="/static/js/jquery3.7.1.js"><\/script>')</script>
    <script charset="utf-8" src="/static/plugins/kindeditor/kindeditor-all.js"></script>
    <script charset="utf-8" src="/static/plugins/kindeditor/lang/zh-CN.js"></script>

# kindeditor的相关代码
        KindEditor.ready(function(K) {
            window.editor = K.create('#editor_id', {
                allowFileManager : true,
                uploadJson : '/uploadimg_kindeditor/', #设置图片上传的目录
                afterUpload : function(url) {
                    this.sync()   #上传完成后同步文本内容
                },
                items : [
                    'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste',
                    'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
                    'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
                    'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/',
                    'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold',
                    'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage',
                    'flash', 'media', 'insertfile', 'table', 'hr', 'emoticons', 'baidumap', 'pagebreak',
                    'anchor', 'link', 'unlink', '|', 'about'
                ]
            });
        });
        function submit() {
            editor.sync(); #同步编辑器的内容
            dic = {};
            key1 = 'csrfmiddlewaretoken';
            cs = document.getElementsByName(key1)[0];
            dic[key1] = cs.value;  # 拿到csrf_token
            dic["content"] = document.getElementById('editor_id').value; // 原生API;
            $.post({
                url: '/{{ article.blog.site }}/article/{{  article.id }}/new_comment/',
                data: dic,
                dataType: 'JSON',
                success: function (arg) {
                    if (arg.error==0){
                        ul = document.getElementById('ulComments');
                        appendCommentElement(arg.message,ul); #js代码生成一条评论html
                    }
                }
            });
        }

图片上传对应的接口

@csrf_exempt  #让post的时候免除csrf
@xframe_options_sameorigin #也是让post的时候
def uploadimg_kindeditor(request):
    unique_id = uuid.uuid4()
    surfix = os.path.splitext(request.FILES['imgFile'].name)[-1] #拿到文件后缀的方法splitext
    filename = str(unique_id) + surfix
    dir = "%s/upload/comments/imgs/"+filename
    result = {"error": 0,"url": dir%'/static','message':'123'} #页面上 用static别名访问
    try:
        with open(dir%'./statics', 'wb') as file: #保存时,用真实的statics路径,前面加‘.’才是相对于项目的根目录
            for chunk in request.FILES['imgFile'].chunks(): # 保存在内存的文件,需要chunks()一块一块地写入
                file.write(chunk)
    except Exception as e:
        print(e)
        result = {"error": 1, "url": dir, 'message': '图片上传失败'}
    return HttpResponse(json.dumps(result))

腾讯地图js

<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
<script>
window.onload = function(){
		//直接加载地图
    //初始化地图函数  自定义函数名init
    function init() {
        var center = new qq.maps.LatLng(22.914751,114.083267);      // 地图的中心地理坐标。
        //定义map变量 调用 qq.maps.Map() 构造函数   获取地图显示容器
         var map = new qq.maps.Map(document.getElementById("container"), {
            center: center,
            zoom:11                                                 // 地图的中心地理坐标。
        });
        var marker = new qq.maps.Marker({  // 标记
            position: center,
            map: map
        })
    }

    //调用初始化函数地图
    init();
}
</script>
<!--   定义地图显示容器   -->
<div id="container">
    <div>
      #其它是复制指南的代码。这里自己添加一个a标签,点击跳转到腾讯地图页,并指定了初识位置
        <a target="_blank" href="http://apis.map.qq.com/uri/v1/marker?marker=coord:28.914751,106.083267;title:**市***镇;addr:**大厦" style="position: fixed; z-index: 100"><i class="itag"></i>查看完整地图</a>  {# z-index:100使不被遮盖,前提position不是static。 i标签 加个样式 显示图标 #}
    </div>
</div>

标签:function,map,插件,地图,三十一,JS,csrf,document,id
From: https://www.cnblogs.com/zhlforhe/p/18014062

相关文章

  • 二十一、JS笔记
    JSONimportjson#对象转字符串str=json.dumps(dict,ensure_ascii=False)#ensure_ascii=True或不设置str=json.dumps(dict)#这时前端拿到的是未解码的数据:{"key1":"\u7528\u6237\u8f93...",...}obj=json.loads(str)#字符串转对象jsJSON.parse(str)#字符......
  • [RxJS] firstValueFrom/lastValueFrom (convert observable to promise)
    Convertsanobservabletoapromisebysubscribingtotheobservable,andreturningapromisethatwillresolveassoonasthefirstvaluearrivesfromtheobservable.Thesubscriptionwillthenbeclosed.WARNING:Onlyusethiswithobservablesyou know ......
  • 解决jstack的报错:Unable to open socket file
    原文网址:​​解决jstack的报错:Unabletoopensocketfile_IT利刃出鞘的博客-CSDN博客​​简介说明本文介绍解决jstack的报错的方法,报错信息为:Unabletoopensocketfile。分享Java技术星球:​​自学精灵-IT技术星球​​详细报错信息:进程号:Unabletoopensocketfile:......
  • JS日期格式化转换方法
    Date.prototype.Format=function(fmt){//author:meizzvaro={"M+":this.getMonth()+1,//月份"d+":this.getDate(),//日"H+":this.getHours(),//小时"m+":this.getMinutes(),//分......
  • JS时间戳转时间
    functionformatDate(date){vardate=newDate(date);varYY=date.getFullYear()+'-';varMM=(date.getMonth()+1<10?'0'+(date.getMonth()+1):date.getMonth()+1)+'-';varDD=(date.getDate()......
  • 一个好用的IDEA插件RestfulTool: 根据url快速定位方法
    前言我们平时使用IDEA进行web开发,URL通常会分开写在Controller的类和方法上,用一个完整的URL很难定位到具体的方法。IDEA的插件RestfulTool,提供了这样的能力,根据完整URL直接定位方法。使用下载插件有很多插件都有此功能,这里我们选择RestfulTool插件。简单使用......
  • maven--插件的管理(pluginManagement)
     原文网址:​​maven--插件的管理(pluginManagement)_IT利刃出鞘的博客-CSDN博客​​简介说明本文介绍maven如何使用pluginManagement来管理插件(build标签中的plugins标签)。概述Maven使用 dependencyManagement对依赖进行管理,见:​​这里​​,与之类似地,Maven中还提供了一个......
  • Node.js+Express+Koa2开发接口学习笔记(六)
    预防sql注入sql注入最原始、最简单的攻击,从有了web2.0就有了sql注入攻击攻击方式:输入一个sql片段,最终拼接成一段攻击代码预防措施:使用mysql的escape函数处理输入内容即可例如登录,访问http://localhost:8080/login.html正常情况下是输入正确的用户名和密码来进行登录,这个登......
  • 手写实现cni插件
    k8sv1.19.0mycni配置文件cat>>/etc/cni/net.d/mycni.json<<EOF{"cniVersion":"0.2.0","name":"mycni","type":"mycni"}EOFtype对应/opt/cni/bin目录下二进制文件。mycni代码并编译mkdir/run/n......
  • C#的DataTable、List、Dictionary、JSON、XML之间的转换
    1.DataTable转List//创建一个DataTable对象DataTabledataTable=newDataTable();//将DataTable转换为List<DataRow>List<DataRow>dataList=dataTable.AsEnumerable().ToList(); 2、DataTable转Dictionary//创建一个DataTable对象DataTabledataTable=new......