要在网站上打开的模态对话框,而不是每个链接

时间:2013-12-03 17:00:05

标签: c# javascript sharepoint-2010

我有一个包含多个子网站集/子网站的网站集,其中一些“新项目”链接在模式对话框中打开,而有些则没有。根据我的理解,在模态对话框中打开的行为是默认的SP2010设置。但是,一些自定义解决方案给出了非常不一致的体验。

是否有一个C#或配置解决方案只会在比每个链接更大的范围内的新项目上强制模式对话?

1 个答案:

答案 0 :(得分:0)

我并不是在寻找OOTB解决方案,只是一般的解决方案。我设法在主页面中为我做了一个脚本。

<script type="text/javascript">
    function addNewItemFix() {
        $(".ms-addnew").each(function () {
            if ($(this).is("a")) {
                var gReference = $(this).attr("href");
                var options = {
                    title: "New Item",
                    url: gReference
                };
                $(this).attr("onclick", "javascript:SP.UI.ModalDialog.showModalDialog({title: 'New Item',url:'" + gReference + "'}); return false;");
            }
        });
    }
    _spBodyOnLoadFunctionNames.push("addNewItemFix");
</script>

这将查找类.ms-addnew的每个实例,SP2010将其放在TD和Anchor标记上。对于每个.ms-addnew,它只会查找锚点,获取href属性然后重新格式化以执行模态对话框。

可以像魅力一样工作,但要确保{1}}或core.js被称为之前,因为它使用了init.js方法。

此脚本已经过测试,可以作为复制/粘贴使用。