js代码

  • jQuery加PHP实现图片上传并提交,上传下载功能怎么实现分享

    图片上传思路:通过ajax实现图片上传,然后把PHP返回的图片地址,加入到隐藏字段中,最后通过表单提交给后台PHP,代码如下 HTML代码 zimg.html文件: %ignore…

    2020年7月21日 72
  • bat、vbs、js 原生混编(一个bat可以执行vbs,js代码),vbsjs分享

    发现 mshta 会把 file:// 协议指向的文件当作 html 来解析(注:IUnknown 与 happyxxdhaha 提醒此处必需使用绝对路径,否则不会执行),心里顿时…

    DOS/BAT脚本 2020年5月19日 114
  • 不用注册会员也能为DedeCms增加邮箱订阅的方法,注册会员dedecms分享


    为了与朋友们更好的交流,也为了朋友们更好的关注我的个人网站,网站添加了邮箱订阅,其实织梦自带有订阅,但是只能是注册会员,如果不是会员没办法订阅的,我们只能另想办法,现在就有了。您在我网站底部可以看到有“订阅到邮箱”,也可以内容页右侧看到“请您填写您的邮件地址,订阅个人网站的精彩内容:”这就是我用QQ邮件列表做的邮箱订阅系统,您可以订阅我的个人网站内容试试。现把方法分享给网友们:

    CMS教程 2020年5月12日 71
  • 详解织梦模板DEDE首页列表页AJAX无限加载瀑布流修正版,dedeajax分享


    最近在学javascript,才慢慢开始读懂JS代码。对HTML前台AJAX加载技术研究了一番,像博客站或者图片站运用AJAX异步无限加载,做成瀑布流,提高用户体验,这是AJAX异步加载的优点。

    CMS教程 2020年5月12日 85
  • dedecms列表页加载更多功能的实现分享


    dedecms 列表页加载更多插件,加载更多按钮为下拉自动触发形式,本次织梦dedecms实现点击下拉加载更多主要用到js技术。步骤如下:1、在</head>头部加入js代码以及引入js文件。jquery-ias.min.js 下载地址JavaScriptvar ias = $.ias({ container: ".listbox", item: ".item", pagination: ".pagelist", next: ".pagelist a.next",});ias.extension(new IASSpinnerExtension({ src: "/images/loadinglit.gif", html: '<p style="text-align: center;" class="clear"><img src="{src}"/></p>'}));ias.extension(new IASTriggerExtension({ text: '点击加载更多', html: '<p style="text-align: center; cursor: pointer;" class="clear more"><a>{text}</a></p>', offset: !1, }));ias.extension(new IASNoneLeftExtension({ text: '没有更多了,已经加载完!', html: '<p style="text-align: center; cursor: pointer;" class="clear more"><a>{text}</a></p>',}));找到
    {dede:pagelist listitem="pre,next,pageno,option" listsize="3"/}修改为{dede:pagelist listitem="next" listsize="1" runphp="yes"} @me = preg_replace('/<ashref=(['"]?).+?1/', '$0', @me);{/dede:pagelist}效果即实现。

    CMS教程 2020年5月12日 87
  • 怎么在织梦模板添加从左向右滚动的代码分享


    一般很多的网站特别是企业网站都有一个从左到右的滚动功能。 下面是我从网上找来的,一般网上的都有错误,我把错误修改掉后,分享给大家。 如果您网站需要这样一个从左到右的滚动,可以使用这段代码,保证能用。css样式,可以放在头部head标签里面:<style type="text/css">#demo {background: #FFF;overflow:hidden;border: 1px dashed #CCC;width: 500px;}#demo img {border: 3px solid #F2F2F2;}#indemo {float: left;width: 800%;}#demo1 {float: left;}#demo2 {float: left;}</style>滚动的图片代码:向左滚动<div id="demo"><div id="indemo"><div id="demo1"><img src="www.dedebase.com/dedecms/style/img/img1.png" alt="" /><img src="/dedecms/style/img/img2.png" alt="" /> <a href=""><img src="www.dedebase.com/dedecms/style/img/1.png" alt=""/></a> <a href=""><img src="/dedecms/style/img/2.png" alt=""/></a> <a href=""><img src="/dedecms/style/img/3.png" alt=""/></a> <a href=""><img src="/dedecms/style/img/4.png" alt=""/></a></div><div id="demo2"></div></div></div>js代码,主要是这段代码的作用:<script>var speed=10; //数字越大速度越慢var tab=document.getElementById("demo");var tab1=document.getElementById("demo1");var tab2=document.getElementById("demo2");tab2.innerHTML=tab1.innerHTML;function Marquee(){if(tab2.offsetWidth-tab.scrollLeft<=0)tab.scrollLeft-=tab1.offsetWidthelse{tab.scrollLeft++;}}var MyMar=setInterval(Marquee,speed);tab.onmouseover=function() {clearInterval(MyMar)};tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)};</script>

    CMS教程 2020年5月12日 81
  • DedeCMS电脑端列表和内容跳转到对应移动端分享


    移动端和PC的整合越来越多,实现一个后台管理PC、移动、微信等。如题,这个问题困扰了我和许多站长,摸索了一两天才发现dedecms默认的wap跳转正好可以拿来用。

    2020年5月12日 119
  • 织梦dedecms文章模型整合下载功能分享


    本教程实现DEDECMS功能:文章模型整合下载功能,可判断点数,会员组等下载权限,前台可判断是否有附件下载,有则显示,没有则不显示。适用类型:有些文章有下载地址,有些文章没有下载地址的网站。想附件收费的网站等等……具体就不啰嗦了。用得上您就拿走。

    DEDECMS文章模型整合下载功能,可判断点数,会员组等下载权限

    2020年5月12日 98
  • 织梦dedecms文章模型整合下载功能,可判断点数,会员组等下载权限分享


    本教程实现DEDECMS功能:文章模型整合下载功能,可判断点数,会员组等下载权限,前台可判断是否有附件下载,有则显示,没有则不显示。适用类型:有些文章有下载地址,有些文章没有下载地址的网站。想附件收费的网站等等……具体就不啰嗦了。用得上您就拿走。

    DEDECMS文章模型整合下载功能,可判断点数,会员组等下载权限

    2020年5月12日 114
  • dedecms/gbk站点mip改造方案分享分享


    前言:近期尝试对一个做过跳转适配的dedecms/gbk手机站进行整站mip改造,经过一系列思路完善和测试,终于完成,回顾下过程,主要问题可分为以下几类:1、非utf-8站点的编码问题 前些时候宋同学在站长社区发布了新装utf-8版cms和转换数据库编码的教程,我刚开始也是类似思路,但因为站点经过二次开发以及包含一些乱七八糟的附加文件等,重装cms很难复原之前的修改,此思路卒。后又尝试在数据库调用时以gbk编码读取,测试生成后虽大体上浏览正常,但还是存在些许后续问题和少部分乱码,也放弃了该方案。最终,灵光一闪——为什么要在程序执行过程中纠结?完全可以在生成静态页面时进行替换整改啊!顿时柳暗花明之感油然而生,测试果然可行,之后遇到后续问题(如下面问题2、3)也因此思路而变得易解决了。
    2、路径问题,<a>、<img>/<mip-img>等标签中的相对路径需均转换为完整url,这个在目前教程里貌似没有明确提出,根目录相对路径还好,主要是相对当前页面路径转换完整url需加上所在目录有些难度(特别是标签调用生成的相对路径,如分页)。
    3、内联样式问题模板里的内联样式可以手动整改,虽烦琐但难度不大,主要问题在于后台发布文章时,cms编辑器会自动生成包括内联样式在内的各种不符合mip规则的原始代码,除了折腾一下对编辑器进行修改,其他也很难解决了。
    4、js问题 mip规范局限了js的使用,这个的确挺头疼的,好在我改造的站点内js不多,所以删掉部分效果和使用现有组件替换,也凑合解决了此问题。不过还是希望百度mip团队能在考虑下此方面的规范方案优化,不少站点有很多js代码且不能去除,全部以组件形式提交也很费事且需要一定的程序基础,其他问题还可以按统一教程去解决,但js上的mip改造却无法如此,按照目前的限制会导致很多站长因此一点就不得不放弃mip改造。
    5、其他小问题 ·发现少部分样式有冲突,需根据实际情况对本身css进行局部修改。 ·发现mip cache无法识别站点中图片的302跳转,如原站使用302跳转的图片,mip生效后无法显示图片。该问题已和百度技术人员沟通,说后续可以考虑支持,目前我自己加了一段代码对路径做了下处理。 ·组件使用bug(如mip-carousel多图轮播图片套<a>链接会导致图片显示空白,且无法自适应屏幕)。 ·mip引入提交后就回显个success,也没有提交记录和状态,用户体验上有所欠缺。正题:基于dedecms/gbk的整站mip改造
    第一部分:模板修改1、js部分:删除或使用现有组件替换
    2、调用百度mip文件:head里加<link rel="stylesheet" type="text/css"href="https://mipcache.bdstatic.com/static/mipmain-v1.1.1.css">body里加<script src="https://mipcache.bdstatic.com/static/mipmain-v1.1.2.js"></script>
    3、head里加<link rel="canonical"href="{dede:global.cfg_basehost/}{dede:field name='arcurl'/}" >,通过dedecms标签直接调用当前页url。
    4、外部通用css文件:建议将css文件中的样式代码嵌入<style mip-custom>…</style>中,另存为模板文件(如css.htm),用{dede:includefilename="css.htm"/}替换相关模板中的<link rel="stylesheet" type="text/css"href="…" />。模板中的内联css可人工进行查找替换,合并至<stylemip-custom>中。(虽在下面代码中可以自动进行处理,但从静态文件生成性能角度考虑,还是建议人工先将模板中的内联样式一次性整改好。)
    注:以上操作大多可通过批量查找替换来完成,看似需要修改很多,但实际工作量并不大。

    第二部分:程序文件修改· 静态生成移动站:
    找到/include/dedetag.class.php文件中解析模板输出为文件的函数: function SaveTo($filename) { $fp = @fopen($filename,"w")or die("DedeTag Engine Create File False"); fwrite($fp,$this->GetResult()); fclose($fp);}
    替换为(部分代码可根据实际情况进行改动):
    //路径转换函数文件。$content:代码源,$feed_url:首页,$f_url:相对路径的目录部分 function relative_to_absolute($content,$protocol, $domain, $f_url) { //根目录相对路径(如href="/a/b.html")转换 $new_content =preg_replace('/hrefs*=s*(['"])s*//','href=\1'.$protocol.$domain.'/', $content); $new_content =preg_replace('/srcs*=s*(['"])s*//', 'src=\1'.$protocol.$domain.'/',$new_content); //当前页相对路径(如href="a/b.html")转换 $new_content =preg_replace('/hrefs*=s*(['"])(?!(http|https)://)/','href=\1'.$protocol.$domain.$f_url,$new_content); $new_content =preg_replace('/srcs*=s*(['"])(?!(http|https)://)/','src=\1'.$protocol.$domain.$f_url, $new_content); return $new_content; }
    function SaveTo($filename) { $fp=@fopen($filename,"w") ordie("DedeTag Engine Create File False"); if(substr($_SERVER['PHP_SELF'],-6)=='_m.php'||substr($filename,-13)=='/m/index.html'){//跳转适配站识别是否为移动端生成,不影响pc端的gbk编码。移动端为独立站点需去掉此判断条件。 $f_url=explode('www.域名.com/m',dirname($filename));//分割路径,获取当前页相对路径的目录部分 //如dirname($filename)得到的本地绝对路径为D:/wwwroot/www.域名.com/m/yygk/xwzx,用网站目录“www.域名.com/m”作为标识分割路径,得到目录部分“/yygk/xwzx”。 $html=$this->GetResult(); $html=$this->relative_to_absolute($html,'http://','m.域名.com',$f_url[1].'/');//相对路径转换绝对路径 $html=str_replace('<metacharset="gb2312">','<metacharset="utf-8">',iconv('gbk','utf-8//ignore',$html));//转换为utf-8编码声明,fwrite会以此生成对应编码的静态页面 $html=str_replace('<a','<a target="_blank" ',$html);//<a>标签加target $html=str_replace('<img','<mip-img ',$html);//替换<img>标签
    /*主要针对编辑器生成的内联样式,将内联样式转换到head的style标签中*/ if(preg_match_all('/sstyles*=s*['"](.*?)['"]/',$html,$css)){ $css0=array_unique($css[0]);//过滤重复style foreach($css0as $k => $v){ $html=str_replace($v,'class="mip_add_css_'.$k.'"',$html);//mip_add_css_为自定义样式名前缀,可自行修改,但需避免与原有样式名重复 $temp_name='mip_add_css_'.$k; $$temp_name=$css[1][$k]; $add_css.='.'.$temp_name.'{'.$css[1][$k]."}n"; } $html=str_replace('<stylemip-custom>',"<style mip-custom>n".$add_css,$html); } fwrite($fp, $html); }else{//pc端执行 fwrite($fp,$this->GetResult()); } fclose($fp); }
    注:该方案初步测试成功,因生成静态文件时处理程序增加,理论上来说会对生成效率有所影响。另外,不排除存在问题的可能性,如有问题或其他想法可回帖共同研究探讨。· 默认动态移动站:1、修改/m目录下index.php、list.php、view.php三个php文件的编码,改为utf-8。2、找到/include/dedetag.class.php文件中解析模板直接输出的函数: function Display() { echo $this->GetResult(); }替换为: function Display() { $html=str_replace('<meta charset="gb2312">','<meta charset="utf-8">',$this->GetResult());//转换为utf-8编码声明,此处源内容$this->GetResult()不需要转编码 echo $html; }如此即可以utf-8编码输出动态页面,其他处理可参照上面静态生成站点方案中的代码。

    本文转载自百度站长社区:http://bbs.zhanzhang.baidu.com/thread-139404-1-1.html

    CMS教程 2020年5月12日 65
  • 织梦dedecms首页列表页ajax点击下拉加载更多文章瀑布流效果分享


    织梦dedecms实现点击下拉加载更多主要用到ajax技术。具体步骤如下:一、首先找到并打开/plus/list.PHP文件,在里面找到如下代码:require_once(dirname(__FILE__)."/../include/common.inc.php");在这段代码下面添加以下代码://列表页瀑布流无限加载代码if(isset($_GET['ajax'])){ $typeid = isset($_GET['typeid']) ? intval($_GET['typeid']): 0;//传递过来的分类ID $page = isset($_GET['page']) ? intval($_GET['page']): 0;//页码 $pagesize = isset($_GET['pagesize']) ? intval($_GET['pagesize']): 15;//每页多少条,也就是一次加载多少条数据 $start = $page>0 ? ($page-1)*$pagesize : 0;//数据获取的起始位置。即limit条件的第一个参数。 $typesql = $typeid ? " WHERE typeid=$typeid" : '';//这个是用于首页实现瀑布流加载,因为首页加载数据是无需分类的,所以要加以判断,如果无需 $total_sql = "SELECT COUNT(id) as num FROM `dede_archives` $typesql "; $temp = $dsql->GetOne($total_sql); $total = 0;//数据总数 $load_num =0; if(is_array($temp)){ $load_num= round(($temp['num']-15)/$pagesize);//要加载的次数,因为默认已经加载了 $total = $temp['num']; } $sql = "SELECT a.*,t.typedir,t.typename,t.isdefault,t.defaultname,t.namerule, t.namerule2,t.ispart, t.moresite,t.siteurl,t.sitepath FROM `dede_archives` as a JOIN `dede_arctype` AS t ON a.typeid=t.id $typesql ORDER BY id DESC LIMIT $start,$pagesize"; $dsql->SetQuery($sql); $dsql->Execute('list'); $statu = 0;//是否有数据,默认没有数据 $data = array(); $index = 0; while($row = $dsql->GetArray("list")){ $row['info'] = $row['info'] = $row['infos'] = cn_substr($row['description'],160); $row['id'] = $row['id']; $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'], $row['typeid'],$row['senddate'],$row['title'],$row['ismake'], $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'], $row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']); $row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'], $row['isdefault'],$row['defaultname'],$row['ispart'], $row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']); if($row['litpic'] == '-' || $row['litpic'] == ''){ $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif'; } if(!preg_match("#^http://#i", $row['litpic']) &&$GLOBALS['cfg_multi_site'] == 'Y'){ $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic']; } $row['picname'] = $row['litpic'];//缩略图 //$row['stime'] = GetDateMK($row['pubdate']); $row['stime'] = date('Y-m-d H:i', $row['pubdate']); $row['click'] = $row['click']; $row['typelink'] = "".$row['typename']."";//分类链 $row['fulltitle'] = $row['title'];//完整的标题 $row['shorttitle'] = $row['shorttitle'];//副标题 $row['title'] = cn_substr($row['title'], 80);//截取后的标题 $data[$index] = $row; $index++; } if(!empty($data)){ $statu = 1;//有数据 } $result =array('statu'=>$statu,'list'=>$data,'total'=>$total,'load_num'=>$load_num); echo json_encode($result);//返回数据 exit();}二、然后在需要使用瀑布流无线加载的织梦dedecms模板里引用下面这个js代码(这个js大家应该不是很陌生,只要有用到JQ库函数的话一定要引用这个js):<script src="http://libs.baidu.com/jQuery/1.9.0/jquery.js"></script>三、并在模板底部添加以下代码:<script type="text/javascript">var loadConfig = { url_api:'/plus/list.php', typeid:{dede:field name="typeid"/}, page:2, pagesize:15, //这个就是滑动一次添加几条信息的参数设置 loading : 0, }function loadMoreApply(){ if(loadConfig.loading == 0){ var typeid = loadConfig.typeid; var page = loadConfig.page; var pagesize = loadConfig.pagesize; var url = loadConfig.url_api,data={ajax:'pullload',typeid:typeid,page:page,pagesize:pagesize}; var sTop = document.body.scrollTop || document.documentElement.scrollTop, dHeight = $(document).height(), cHeight = document.documentElement.clientHeight; console.log(dHeight); if (sTop + cHeight >= dHeight – cHeight) { loadConfig.loading = 1; function ajax(url, data) { $.ajax({url: url,data: data,async: false,type: 'GET',dataType: 'json',success: function(data) { addContent(data); }}); } ajax(url,data); } }}function addContent (rs){ if(rs.statu== 1){ var data = rs.list; var total = rs.total; var arr=[]; var length = data.length; for(var i=0;i<length;i++){ arr.push('<a href="'+data[i].arcurl+'" title="'+data[i].title+'">'); arr.push('<dl class="yz_card">'); arr.push('<dt class="yz_card_dt">'); arr.push('<img src="'+data[i].picname+'" alt="'+data[i].title+'">'); arr.push('</dt>'); arr.push('<dd class="yz_card_dd">'); arr.push('<p class="yz_card_p">'+data[i].title+'</p>'); arr.push('<div class="yz_card_icon">'); arr.push('<span class="yz_comment">'); arr.push(data[i].click); arr.push('<em class="yz_icon_comment"><img src="/templets/default/images/pingluan.png" height="14"></em>'); arr.push('</span>'); arr.push('</div>'); arr.push('<div class="yz_datetime">'+data[i].stime+'</div>'); arr.push('</dd>'); arr.push('</dl>'); arr.push('</a>'); } $('.arclist').append(arr.join('')); loadConfig.load_num = rs.load_num; if(total<loadConfig.page*loadConfig.pagesize || loadConfig.page > loadConfig.load_num){ window.removeEventListener('srcoll',loadMoreApply,false); } loadConfig.page++; loadConfig.loading = 0; }}function pullLoad(){ window.addEventListener('scroll', loadMoreApply, false);}pullLoad();</script>上面的代码中的$('.arclist').append(arr.join(''));里的arclist对应模板内列表的外框class属性。arr.push部分对应的是列表中单篇文章的代码。如果在首页只需把代码中的”typeid:{dede:field name="typeid"/}“ 修改为”typeid:0,“即可。
    到此织梦dedecms瀑布流无限加载就实现了。

    CMS教程 2020年5月12日 82
  • DEDE使用AJAX无刷新提交Form表单,PHP返回结果分享


    $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue); ";

    CMS教程 2020年5月12日 86