//页面加载完就执行
$(function(){ //自动根据url把当前菜单激活
var page_id = GetQueryString('page_id');
//如果中没有指定page_id,则判断有没有父目录为0的页面,默认打开第一个
if(!page_id) {
page_id = $(".doc-left li").children("a").attr("data-page-id");
};
if(page_id !=null && page_id.toString().length>0)
{
var str = 'page_id='+page_id;
$(".doc-left li").each(function(){
url = $(this).children("a").attr("href");
//如果链接中包含当前url的信息,两者相匹配
if (url && url.indexOf(str) >= 0 ) {
//激活菜单
$(this).addClass("active");
//如果该菜单是子菜单,则还需要把父菜单打开才行
if ($(this).parent('.child-ul')) {
$(this).parent('.child-ul').show();
$(this).parent('.child-ul').parent('li').children("a").children('i').attr("class","icon-chevron-down");
};
//获取对应的page_id
page_id = $(this).children("a").attr("data-page-id");
if (page_id != '' && page_id !='#') {
change_page(page_id)
};
};
})
} //根据屏幕宽度进行响应(应对移动设备的访问)
if( isMobile()){
AdaptToMobile();
} $(window).resize(function(){
if( isMobile()){
AdaptToMobile();
} else if($(window).width() < 600){
AdaptToMobile();
}else{
window.location.reload();
}
}); //js获取url参数
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
} function AdaptToMobile(){
$(".doc-left").removeClass("span3");
$(".doc-left").css("width",'100%');
$(".doc-left").css("height",'initial');
$(".doc-left").css("min-height",'0px');
$(".doc-right").removeClass("span12");
$(".doc-head .right").hide();
$(".page-edit-link").html('');
$(".doc-left-newbar").html('');
$(".iframe_content").css("padding-left","30px");
$(".doc-left .nav-list li a i ").css("margin-left" , '10px');
$(".search-input-append").css("width","100%");
$(".search-query-input").css("width","70%"); } function mScroll(id){
$("html,body").stop(true);
$("html,body").animate(
{scrollTop: $("#"+id).offset().top},
2000);
} //点击左侧菜单事件
$(".doc-left li").click(function(){
//先把所有菜单的激活状态取消
$(".doc-left li").each(function(){
$(this).removeClass("active");
});
//先判断是否存在子菜单
if ($(this).children('.child-ul').length != 0) {
//如果子菜单是隐藏的,则显示之;如果是显示状态的,则隐藏
if ($(this).children('.child-ul').css("display") == "none") {
$(this).children('.child-ul').show();
$(this).children("a").children('i').attr("class","icon-chevron-down");
}else{
$(this).children('.child-ul').hide();
$(this).children("a").children('i').attr("class","icon-chevron-right");
}
};
//获取对应的page_id
page_id = $(this).children("a").attr("data-page-id");
if (page_id != '' && page_id != null && page_id !='#') {
change_page(page_id);
//如果是移动设备的话,则滚动页面
if( isMobile()){
mScroll("page-content");
}
};
return false;//禁止原有的href链接
}); //切换页面;
function change_page(page_id){
if(!page_id)return;
var item_id = $("#item_id").val();
var base_url = $("#base_url").val();
$(".page-edit-link").show();
$("#page-content").attr("src" , base_url+"/Home/page/index?page_id="+page_id);
$("#edit-link").attr("href" , base_url+"/Home/page/edit?page_id="+page_id);
$("#copy-link").attr("href" , base_url+"/Home/page/edit?item_id="+item_id+"&copy_page_id="+page_id);
$("#share-page-link").html("http://"+window.location.host+base_url+"/"+item_id+"?page_id="+page_id);
$("#delete-link").attr("href" , base_url+"/Home/page/delete?page_id="+page_id);
} //分享项目
$("#share").click(function(){
$("#share-modal").modal();
return false;
}); //分享页面
$("#share-page").click(function(){
$("#share-page-modal").modal();
return false;
}); var ifr = document.getElementById('page-content')
ifr.onload = function() {
var iDoc = ifr.contentDocument || ifr.document
var height = calcPageHeight(iDoc)
ifr.style.height = height + 'px'
} // 计算页面的实际高度,iframe自适应会用到
function calcPageHeight(doc) {
var cHeight = Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
var sHeight = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight)
var height = Math.max(cHeight, sHeight)
return height
} var keyMap = {
// 编辑
"Ctrl+E": function() {
location.href = $("#edit-link").attr('href');
},
// 删除
"Ctrl+D": function() {
if (confirm('确认删除吗?'))
location.href = $("#delete-link").attr('href');
},
// 新建页面
"Ctrl+F1": function() {
location.href = $("#new-like").attr('href');
},
// 新建目录
"Ctrl+F2": function() {
location.href = $("#dir-like").attr('href');
}
};
if (!isMobile()) initKeys();
function initKeys() {
var $doc = $(document);
$.each(keyMap, function(key, fn) {
$doc.on('keydown', null, key, function(e) {
e.preventDefault();
fn();
return false;
});
});
} })

  

showdoc.js代码的更多相关文章

  1. Firebug调试js代码

    Firebug功能异常强大,不仅可以调试DOM,CSS,还可以调试JS代码,下面介绍一下调试JS. 1.认识console对象 console对象是Firebug内置的对象,该对象可以在代码中写入,可 ...

  2. 浏览器控制台js代码与后台不同步

    原因:浏览器会缓存js 如果是将js代码直接通过<script>标签插入jsp页面中则不存在这个问题 在加载页面的时候会重新加载js代码 如果直接将js代码以文件的形式引入,那么每次在修改 ...

  3. js封装的三级联动菜单(使用时只需要一行js代码)

    前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...

  4. 阻止pc端浏览器缩放js代码

    阻止pc端浏览器缩放js代码 众所周知:移动端页面禁止用户缩放界面只需加上<meta name="viewport" content="user-scalable= ...

  5. 还原网站上压缩的js代码

    还原网站上压缩的js代码 我们经常可以看到一些网站,把所需的javascript代码压缩成一行,就像下图这样 这种代码浏览器能读懂,但正常人是没法阅读的. 既然浏览器能读,浏览器当然也能还原这段代码. ...

  6. 我们为什么要看《超实用的Node.JS代码段》

    不知道自己Node.JS水平如何?看这张图 如果一半以上的你都不会,必须看这本书,一线工程师用代码和功能页面来告诉你每一个技巧点. 都会一点,但不知道如何检验自己,看看本书提供的面试题: 1.     ...

  7. 如何添加商*通新对话快捷链接?不用js代码

    我们在使用商务通一般都是在页面中嵌入一段js代码,如果您是js洁癖,是不是在想着如何直接用一张小图加上商*通新对话链接来代替呢?好,那就一起来研究一下吧. 首先,我们打开一个有商*通js弹窗的页面,比 ...

  8. JS代码判断IE6,IE7,IE8,IE9!

    JS代码判断IE6,IE7,IE8,IE9!2011年12月15日 星期四 14:01做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代 ...

  9. Edge.js:让.NET和Node.js代码比翼齐飞

    通过Edge.js项目,你可以在一个进程中同时运行Node.js和.NET代码.在本文中,我将会论述这个项目背后的动机,并描述Edge.js提供的基本机制.随后将探讨一些Edge.js应用场景,它在这 ...

随机推荐

  1. 查看linux目录剩余空间大小

    df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl   显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem S ...

  2. google-java-format

    https://github.com/google/google-java-format

  3. Spring Mvc4 新特性(一)

    前言 Spring Framework的Web层,由spring-web,spring-webmvc,spring-websocket和spring-webmvc-portlet模块组成. 很多人刚学 ...

  4. Django HttpRequest对象详解

    WSGIRequest对象 Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数.也就是我们经常看到 ...

  5. Harbor实现容器镜像仓库的管理和运维

    本次分享主要讲述了在开发运维中的管理容器镜像方法.为了便于说明原理,较多地使用Harbor作为例子. 内容主要包括: 开发和生产环境中镜像仓库的权限控制: 镜像远程同步(复制)的原理: 大规模应用镜像 ...

  6. SVM学习笔记(二)----手写数字识别

    引言 上一篇博客整理了一下SVM分类算法的基本理论问题,它分类的基本思想是利用最大间隔进行分类,处理非线性问题是通过核函数将特征向量映射到高维空间,从而变成线性可分的,但是运算却是在低维空间运行的.考 ...

  7. R中apply函数族

    参考于:http://blog.fens.me/r-apply/ 1. apply的家族函数 2. apply函数 apply函数是最常用的代替for循环的函数.apply函数可以对矩阵.数据框.数组 ...

  8. git命令与协同开发

    一 git命令 1.简单命令 git init # 初始化 (建立git 版本相关文件关系都放这里) git config --global user.email "you@example. ...

  9. 在python中如何使用多进制数字

    我们在python中,除十进制外还可以使用二进制.八进制和十六进制 1.二进制数字由0和1组成,我们使用0b或0B前缀表示二进制数 2.使用bin()函数将一个数字转换为它的二进制形式 print(b ...

  10. 【JavaScript】写代码前的准备

    1.搭建开发环境,编辑器推荐HBuilder,浏览器用谷歌. 2.编写一个HelloWorld程序. HelloWorld.html <!DOCTYPE html> <html> ...