Sharepoint 2013 - открыть результаты поиска в новом окне / вкладке

Итак, я боролся с этой проблемой уже несколько часов... Мне нужно изменить ссылки в результатах поиска, чтобы они открывались в новом окне / вкладке.

В частности, это результаты поиска, которые ссылаются на "off-site" -hit. Я создал копию Item_WebPage.html, но просто не могу заставить ее работать.

Я предполагаю, что есть какие-то асинхронные нагрузки, которые все портят.

Мой JS-код выглядит следующим образом:

var anchors = document.getElementsByClassName('ms-srch-item-link');
    for (var i = 0; i < anchors.length; i++) {
            anchors[i].setAttribute("target", "_blank");
    }
}

Однако "якоря" всегда равны "0". Можно ли использовать функцию "sharepoint-document-ready-as-h*ll"? Я предполагаю, что моя проблема в том, что не весь контент загружается в DOM до того, как я запустил свой код...

3 ответа

Это слишком долго, и вы, возможно, решили это.

Я искал то же самое и добавил - target="_blank" к тегу привязки в пользовательском шаблоне отображения

В SharePoint онлайн это отлично работает для меня, но относится ко всем результатам.

Используя SharePoint Designer, обновите шаблон отображения Item_CommonItem_Body.html из _catalogs/masterpage/display templates/search.

Поиск по нижней строке:var titleHtml = String.format('<a clicktype="{0}" id="{1}" href="{2}" class="ms-srch-item-link" title="{3}" onfocus="{4}" {5} >{6}</a>',

и заменить его на:var titleHtml = String.format('<a clicktype="{0}" id="{1}" href="{2}" class="ms-srch-item-link" title="{3}" onfocus="{4}" {5} target="_blank">{6}</a>',

Сохраните изменения и из библиотеки главных страниц браузера опубликуйте основную версию. При поиске сейчас результаты должны открываться в новых вкладках, хотя вам может потребоваться снова загрузить кэш страниц (CTRL+F5).

Из https://social.technet.microsoft.com/Forums/ie/en-US/a7db8389-3740-4ff6-ac52-645776b29a56/search-results-in-new-tabwindow-in-sharepoint-2013

Пользовательский шаблон отображения - это хороший способ изменить поведение результатов поиска. Я использовал код JQuery, чтобы убедиться, что внешние ссылки всегда загружаются в новом окне:

<script type="text/javascript">

        if (window.jQuery) {
            $(window).load(function () {

                // Open external links in a new tab
                var url = '://' + window.location.hostname;
                // get the current website name, and i add :// to make sure we're looking at the right name // 
                url = url.toLowerCase(); // lowercase everything to compare apples to apples 
                $("a").each(function () {
                    var link = this; // assign the link object to another variable for easier managability 
                    var linkHref = link.href.toLowerCase(); // lower case it 
                    if (linkHref.indexOf(url) < 0 && linkHref.indexOf('javascript:') < 0) { // check to see if this A object has this domain in it and make sure it's not a javascript call 
                        link.target = '_blank'; // change the target to be in the new window 
                    } if (linkHref.indexOf('.pdf') > 0) { // check to see if this is a PDF 
                        link.target = '_blank'; // change the target to be in the new window 
                        $(link).removeAttr("onclick"); //remove the SP click event 
                    } if (linkHref.indexOf('/forms/') > 0 && linkHref.indexOf(').aspx') > 0) { //check for links in the forms library 
                        link.target = '_blank'; // change the target to be in the new window 
                        $(link).removeAttr("onclick"); //remove the SP click event 
                    }
                });


            });
        }

    </script>
Другие вопросы по тегам