默认情况下,在 Sharepoint 2010 中,您编辑的每个列表项都会在新模型对话框中打开。
此对话框显示为带有 ms-dlgContent 类的新 div。它还创建了一个带有 ms-dlgOverlay 类的 div,作为使背景变暗的灰色框。但是它不会修改包含背景内容的现有 div,(在 id 为 s4-workspace 的 div 中找到。)
当您打印带有对话框的页面时,对话框的背景和 ms-dlgOverlay div 将被忽略,因为背景不打印。这意味着对话框的字段与对话框后面的页面内容重叠,看起来很乱。
我有一个用于打印的 css 页面设置,我想在出现对话框时使用它来隐藏背景内容。我可以在此 css 表中将 div 的样式设置为 display:none,但是当且仅当存在对话框时,我找不到将类添加到 s4-workspace 元素的方法。(如果没有对话框,我希望打印 s4-workspace 元素。)
我尝试将以下内容添加到我的母版页,但它不起作用。我猜这是因为页面加载时对话框窗口不存在,而且我不确定如何在对话框打开/关闭时运行我的 javascript
<script type="text/javascript">
jQuery(function() {
jQuery("#s4-workspace").removeClass("backgroundOfDialog");
//this should run if the ms-dlgContent class is found and do nothing otherwise
jQuery(".ms-dlgContent").parent().children("#s4-workspace").addClass("backgroundOfDialog");
});
</script>