Заменить домен в href, используя JavaScript в SharePoint - PullRequest
0 голосов
/ 10 февраля 2011

В настоящее время я занимаюсь разработкой функции jquery, которую я собираюсь использовать для замены URL-адресов -> http://mydomain:20000

Как вы знаете, SharePoint использует usercontrol для встраивания globalnavigation, и при отображении в виде HTML вы найдете "/Subsite/Folder/Page.aspx "в тегах якорей 'href.

Моя проблема заключается в том, что моему коллеге удалось разработать межсайтовую навигацию для клиента, и у этого клиента также есть MySite, которыйиспользует эту межсайтовую навигацию, а MySites обычно находится в другой записи шлюза, в моем случае - в воротах 20000.

Итак, чтобы пользователи могли перемещаться без ошибок 403 только потому, что межсайтовая навигация неудалить запись: 20000 Я хочу использовать скрипт jquery для удаления этой записи.Единственная проблема - не знаю, как.

Утилита версия:

<script type="text/javascript">
    $(document).ready(function () { 
        var urlContain = new RegExp(':20000');
        $('#s4-topheader2 a').each(function () { 
            var href = this.getAttribute('href').replace(urlContain, '');
            $(this).attr('href', href);
        });
    });
</script>

Работает, как задумано, но, к сожалению, не удаляет: 20000 из домена, как яупоминалось ранее, якоря, кажется, содержат "/Subsite/Folder/Page.aspx" только при визуализации.Хотя при наведении на них курсора я вижу в левом нижнем углу своего браузера, что он содержит доменное имя, но не когда я Просмотреть исходный код .

Идеи и мысли для решения этой проблемывысоко ценятся.

1 Ответ

1 голос
/ 10 февраля 2011

Если URL-адрес "/Subsite/Folder/Page.aspx", как вы говорите, ваш браузер покажет полный адрес в левом нижнем углу (как вы говорите).Это связано с тем, что URL "Subsite/Folder/Page.aspx" является адресом относительно текущего домена .

. Это означает, что если к этой странице обращаются с сайта

www.example.com,покажет www.example.com/Subsite/Folder/Page.aspx

www.example.com: 8080 -> www.example.com:8080/Subsite/Folder/Page.aspx

www.example.com: 2000 -> www.example.com:2000/Subsite/Folder/Page.aspx

и т. д.

Судя по звукам, ваш javascript здесь не имеет значения,потому что в начале URL нет domain:port.

Возможны следующие варианты:

  1. Добавить домен (без порта) к URL-адресам.В Интернете есть множество примеров того, как получить только доменную часть текущей страницы.Затем вы будете использовать измененную версию вашего текущего javascript для добавления нового домена (с http://) в начале каждого URL.
  2. Измените входной шлюз, используемый другим сайтом, чтобы он использовал правильный домен: port. Я не совсем понимаю вашу ситуацию здесь или ваши настройки. Но, надеюсь, это имеет смысл для вас, чтобы приспособить его к вашим потребностям.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...