//页面加载完就执行
$(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. POJ 1423 Greatest Common Increasing Subsequence【裸LCIS】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1423 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  2. javascript数组中的方法

    数组中的方法 今天我们来说一下,对数组进行操作的几种方法: //添加 a=[];//空数组   a[0]="我是第一个";   a[2]="我是第三个";    ...

  3. Java 之单例设计模式

    设计模式: 对问题行之有效的解决方式, 其实它是一种思想. 单例设计模式 解决的问题:就是可以保证一个类在内存中的对象唯一性. 即单个实例. 比如对于A 和 B 两个程序使用同一个配置信息对象时, A ...

  4. JsonResponse对象浅析

    JsonResponse   JsonResponse 对象: class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_ ...

  5. Django限制请求method

    1.常用的请求method 1.1 GET请求: GET请求一般用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态进行更改.比如向服务器获取某篇文章的详情. 1.2 POST请求: PO ...

  6. Java io流详解二

    原文地址https://www.cnblogs.com/xll1025/p/6418766.html 一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间 ...

  7. 多线程并发练习(Day35)

    练习一 #_*_coding:utf-8_*_ #!/usr/bin/env python import multiprocessing import threading import socket ...

  8. WinForm下的Nhibernate+Spring.Net的框架配置文件

    1.先将配置文件放到如下:<?xml version="1.0" encoding="utf-8"?> <configuration> ...

  9. LocalReport Print with C# C#打印RDLC

             {             ;                                                      )             {        ...

  10. ASP.NET4 与 VS2010 Web 开发页面服务改进

    转:http://blog.163.com/kele_lipeng/blog/static/81345278201132754729336/ 作者:朱先忠 本文将接着上一篇 ASP.NET4与VS20 ...