SharePoint 2010 Pop-Up Dialogs SharePoint 2010 弹出对话框

        SharePoint 2010 使得往你的站点加入对话框内容变得出乎意料的简单。

内置的功能同意你从站点不论什么地方抽取内容,然后显示在模态对话框中。出如今页面的前端。当它涉及到现代Web技术的时候,这就是非常标准的东东啦,可是易用性是真正使SharePoint对话框变得如此引人的主要原因。本文中,我们将探讨SharePoint 2010 平台带来的对话框功能。而且我们会发现自己定义内容的新方法。来给你的SharePoint门户带来独特的新奇外观体验。

SharePoint 2010 中的对话框

        虽然(可能)你已经选择不去理解SharePoint 2010 中的对话框,他们也已经在整个SharePoint平台上应用了,比方页面、列表和库。比如,每一次你创建新页面。你将看到页面上出现的对话框。差点儿就是这样子的。

        当你创建和编辑列表项目时,你将看到类似的对话框,以及在站点集中创建的不论什么文档库中也是如此。这些弹出窗口和视图时SharePoint 2010 平台总体的一部分。

工作原理

        SharePoint 2010 对话框很的简单。它们基本上是一个JavaScript弹出对话框,当中包括一个iframe从站点其它地方请求内容。这个内容能够是SharePoint内部不论什么东东,甚至是公布页面或者你自己创建的自己定义应用程序页面。
        假设你以前在SharePoint 2010中创建自己的母版页,当你尝试着应用你的新母版页到站点时,面对两个选项。你可能已经迷惑了。

SharePoint 2010 在站点模板页和系统母版页之间分离了你的母版页授权。

基本上。你的站点模板页应用到页面、列表和库中。而系统母版页应用到其它地方(设置、权限、管理及对话框等)。当你在SharePoint 2010 中调用弹出对话框时。内容被请求并使用系统母版页显示。假设你想開始自己定义你的对话框在SharePoint 2010中出现的方式,首先你要设置自己定义的母版页格式也作为系统母版页起作用。

系统母版页

        假设你想最优化母版页来使用对话框。最重要的事就是设计在对话框时图中哪些页面元素应该隐藏掉。假设你打开微软的v4.master文件。你可能注意到class="s4-notdlg"出如今文件里非常多地方。这个s4-notdlg类名应该应用到你想要在对话框视图中隐藏的东东上面。这意味着标题、页脚、导航、側边栏等等。基本上,你会想要加入这个CSS类到全部的东东上。除了你设计的主要内容区域。

当对话框显示时,不论什么具有s4-notdlg CSS类的东东都会被自己主动隐藏(缩减)掉。

使用样式

        你的设计非常可能有一个固定的宽度,或者至少有个最小显示宽度。对话框非常小,所以宽度和大小格式不一定在对话框视图中完美呈现。

幸运的是,不论什么时候你的母版页被用来显示对话框内容,html元素获得特殊的CSS类名ms-dialog。你能够使用它覆盖不论什么之前设置的样式,使得它在普通和对话框视图中正确显示。比如,你可能有一个div元素(ID为wrapper)在你的设计中。在附加的CSS文件里,你能够给这个元素加入样式(当它出如今普通和对话框时图中时)

#wrapper {
width: 960px;
margin: auto;
}
html.ms-dialog #wrapper {
width: 100%;
}

上面这个样例中。wraper元素将切换为自己主动宽度。出如今SharePoint 2010 对话框中。

你可能不得不使用这个技术处理列、背景色以及其它出如今对话框中的设计元素。

使用这个功能

既然你的母版页最优化为了对话框使用,如今是时候从你的SharePoint站点中抽取一些内容出来了。创建一个Popup链接很easy。在不论什么页面或者内容编辑器WebPart中,创建一个链接请求一个对话框页面:

<a href="javascript:OpenPopUpPage('/path/to/content.aspx');">Show Me the Pop-Up!</a>

你能够使用OpenPopUpPage函数以对话框模式查看不论什么内容。也有一个更加灵活的函数OpenWebPage,同意你指定对话框宽度和高度。

使用这些函数配合自己定义系统母版页,你在SharePoint中对话框显示的东东就变得限制越来越来越少。

渐进增强

我非常关心可訪问性,并且我真的不喜欢有人要求我在链接元素中加入javascript:。

没有JavaScript的用户不能訪问这个链接。

更重要的是,像Google或Bing的搜索引擎不能跟踪你网站内的内容关联。这可能是个非常大的问题。并且因此。我也不会推荐你在SharePoint 网站中对话框里使用以上的方法。

        一个更好的方法涉及到一个在渐进增强方面的练习。渐进增强要求你给用户创建解决方式时,要在浏览器中启用尽可能少的功能。这意味着创建简单的HTML链接指向真正的网页内容。

通过创建简单的HTML链接,你能够保证每一个人(包含搜索引擎)能够辨认和使用你网站中的链接。对于其它用户。如启用JavaScript的用户。你能够使用弹出对话框来更快的显示内容,增强他们的体验。

        这在SharePoint 2010中很easy,仅仅是由于我们自己定义的母版页已经被格式化来显示正常和对话框时图的内容了。我们能够轻松引导用户到内容的普通视图。而且为网站中启用脚本的用户覆盖那个功能。

SharePoint和弹出框整合

        在真正的渐进增强样式中。我已经创建了一个简单的jQuery函数,将网站中不论什么普通链接转化为弹出对话框链接,仅仅是通过关联一个CSS类。

加入这个功能到你的SharePoint 2010 网站中:

1. 确保jQuery script library被附加到母版页或页面布局中。
2. 加入以下jQuery函数到附加的JavaScript文件里:
(function($){
$.fn.sharePop = function(){
if(typeof OpenPopUpPage == 'function'){
return this.each(function(i){
if($(this).attr('href') != null){
$(this).click(function(e){
e.preventDefault();
OpenPopUpPage($(this).attr('href'));
});
}
});
}
else{
return false;
}
};
})(jQuery);

3. 加入一个独特的CSS类名到要显示对话框视图的链接:

<a href="/path/to/content.aspx" class="dialog-pop">View Content</a>

4. 执行脚本(加入到附加的JavaScript文件里):

$(document).ready(function(){
$('.dialog-pop').sharePop();
});

我的脚本将覆盖这些链接的默认功能,强制它们显示SharePoint 2010 对话框视图。那些没有使用JavaScript的用户也能够訪问到内容(使用普通视图)。

对话框样式

最后一个要考虑的事情就是对话框的样式了。对话框HTML给你了很多CSS类,同意你全然自己定义对话框窗体的外观,而且甚至是后面阴影区域的外观。以下图片显示了SharePoint对话框的HTML。而且我也高光了一些重要的CSS类,你会用到它们改变窗体的外观的。


        使用这些类,你能够创建对话框一个独特的外观。这里是一个黑色主题对话框的样例。
.ms-dlgOverlay {
background-color: #333;
}
.ms-dlgContent {
border: 0;
}
.ms-dlgBorder {
border: 1px solid #333;
}
.ms-dlgTitle {
background-color: #333;
}
.ms-dlgTitleText {
display: block;
font-weight: bold;
font-size: 13px;
padding: 7px;
}

加入CSS到附加的CSS样式表后,我们获得一个全然自己定义的对话框外观。伴随着自己定义内容出如今对话框内部。


        SharePoint 2010 对话框还带来了很多元素。让全部这些融合在一起须要练习和决心。

假设你能做一次,你将发现这些自己定义对话框是加入到你SharePoint 2010 设计中的一个简单、高速、惊人的工具。

SharePoint 2010 Pop-Up Dialogs SharePoint 2010 弹出对话框的更多相关文章

  1. 10.JAVA之GUI编程弹出对话框Dialog

    在上节基础上添加对话框显示错误信息. 代码如下: /*弹出对话框显示错误信息,对话框一般不单独出现,一般依赖于窗体.*/ /*练习-列出指定目录内容*/ import java.awt.Button; ...

  2. 【Telerik】弹出对话框RadWindow,确认删除信息

    要做一个删除功能,但是删除前正常都要弹出对话框确认一下是否删除信息,防止误删信息.

  3. Response.Write("<script>alert('弹出对话框!')</script>") 后跟Response.Redirect("page.aspx");不能弹出对话框,直接跳转页面了 如何解?

    Response.Write和Response.Redirect一起用的时候就会这样,write脚本和redirect脚本不能同时使用,这样不会执行脚本,最好使用ClientScript 改进方法: ...

  4. selenium移动div里面的滚动条,操作弹出对话框

    还是使用js来移动 首先要定位到这个元素 倾向于使用js来定位元素,输入下面的脚本,按下回车键,即可在调试页面看到对应的div块$("div.table-responsive") ...

  5. java selenium (十一) 操作弹出对话框

    Web 开发人员通常需要利用JavaScript弹出对话框来给用户一些信息提示, 包括以下几种类型 阅读目录 对话框类型 1.  警告框: 用于提示用户相关信息的验证结果, 错误或警告等 2. 提示框 ...

  6. ABAP 弹出对话框

    一组有用的用户交互窗口函数 显示多条消息 SAP系统用的是这个函数:C14Z_MESSAGES_SHOW_AS_POPUP POPUP_TO_CONFIRM_LOSS_OF_DATA 显示有YES/N ...

  7. AlertDialog.Builder弹出对话框

    在Android中,弹出对话框使用AlertDialog.Builder方法. new AlertDialog.Builder(MainActivity.this).setTitle("本机 ...

  8. Android 手机卫士--弹出对话框

    在<Android 手机卫士--解析json与消息机制发送不同类型消息>一文中,消息机制发送不同类型的信息还没有完全实现,在出现异常的时候,应该弹出吐司提示异常,代码如下: private ...

  9. jQuery学习笔记——弹出对话框

    引用jQuery库文件的<script>标签,必须放在引用自定义脚本文件的<script>标签之前.否则,在编写的代码中将不能引用到jQuery框架 <script ty ...

随机推荐

  1. 刷题总结——宠物收养所(bzoj1208)

    题目: Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明 ...

  2. 如何解决maven archetype加载太慢的方法

    有时候在构建maven项目时,archetype加载不出来,一直在Retrieving archetype...,现象如下: 有两种解决方法: ①点击链接下载:http://files.cnblogs ...

  3. Mongodb_分片集群模式

    前面介绍的副本集模式实现了数据库高可用. 但是还是存在的问题是: 所有的从节点都是从主节点全面拷贝,这样数据量过大时,从节点压力大.还有就是海量数据时存在硬件瓶颈, 毕竟每一个机器的存储量总是有限的. ...

  4. 标准C程序设计七---07

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  5. objective-c中#import和@class的区别

    在Objective-C中,可以使用#import和@class来引用别的类型, 但是你知道两者有什么区别吗? @class叫做forward-class,  你经常会在头文件的定义中看到通过@cla ...

  6. VScode开发Vue初尝试(一)

    由于公司近期有新的H5项目开发,而前端的同事也离职了,所以就临时顶缸,研究学习一下Vue框架开发. 本人也是初学,在学习过程中,把一些学习所得分享出来,可能会有很多问题和疏漏,希望大家能够多多指正,共 ...

  7. Java8 本地DateTime API

    原文:http://www.yiibai.com/java8/java8_localdateapi.html 使用Java8,新的日期时间API引入覆盖旧的日期时间API的以下缺点. 非线程安全 - ...

  8. android 按两次物理返回键退出程序

    <?xml version="1.0" encoding="utf-8"?> <!-- 定义当前布局的基本LinearLayout --> ...

  9. error LNK2019 无法解析的外部符号------类模板和内敛函数

    今天用类模型实现一个单链表,开始是.h和.cpp将类模板的声明与实现分开写的,结果总是报错: 错误 error LNK2019: 无法解析的外部符号 ?$SingleList@H@@QAE@XZ),该 ...

  10. hadoop优质链接

    http://wiki.apache.org/hadoop/FAQ