Как переключить якорные ссылки между локальным и веб-адресом / альтернативными адресами? - PullRequest
0 голосов
/ 05 октября 2019

Я не знаю, является ли это уникальным для меня или нет, но я не могу найти где-либо еще.

Иногда я скачиваю набор веб-страниц или сайт (HTTrack) и создаю для них пользовательские страницы доступа. для себя и других (например, ссылки на RPG для моей собственной быстрой ссылки).

Я бы хотел, чтобы справочная страница переключала адреса между локальным и сетевым адресом в зависимости от доступности и доступа:

Если первый адрес доступен (локальный) - используйте его, а если нет и онлайн - используйте веб-адрес, в противном случае сообщите пользователю печальные новости:

        web page: equipment_index.html
        local address: ./Equipmentac5b.html
        web address: domain/Equipment.aspx?Id=438

Вы просматриваете equipment_index. html локально, все в порядке, загружает файл Equipmentac5b.html из локального каталога.
Вы даете equipment_index.html другу, загружаете страницу, не можете найти Equipmentac5b.html, поэтому она загружает страницу из альтернативного / веб-адреса домена/Equipment.aspx?Id=438 (при условии, что друг находится в сети).

Думая о добавлении двух свойств к тегу data-network и data-local,href пуст и функция onclick (), которая использует window.location.assign () для навигации по страницам.

        javascript:
        function pageJump(id){
            anchor = document.getElementById(id);
            try {
                window.location.assign(anchor.dataset.local);
            }
            catch(err){
                try {
                    window.location.assign(anchor.dataset.network);
                }
                catch(err){
                    alert("Unable to find desired page.");
                }
            }
        }

        html, for each needed link:
        <a id="link001" href="" data-local="local_address" data-network="web_address" onclick="pageJump(this.id);">some name</a>

Я знаю, упоминалось (много, много, много .... раз), чтодобавление ваших собственных атрибутов в тег приведет к недействительности вашего HTML-документа и может нарушить его (и столько раз, сколько это нормально), поэтому есть ли более простой / лучший способ (в чистом javascript) или HTML для указания альтернативного адреса загрузкидля ссылок?

Некоторые могут задаться вопросом, почему бы просто не дать все файлы со справочным документом? По разным причинам может оказаться невозможным передать вторичные файлы.

1 Ответ

0 голосов
/ 09 октября 2019

Ну, я искал повсюду по различным причинам, мой код не работалНашел недостающую информацию, и теперь это работает.

      javascript:
      function pageJump(id){
        var anchor = id;
        try {
          //alert(anchor.dataset.local);  //for testing, display address 
          window.location.href = anchor.dataset.local;
          return false;
        }
        catch(err){
          try {
            //alert(anchor.dataset.network);  //for testing, display address
            window.location.href = anchor.dataset.network;
            return false;
          }
          catch(err){
            alert("Unable to find desired page.");
          }
        }
      }

      html, change address/files for each link set:
      <a href="" data-local="file:///drive:/path/default1.html" data-network="http://domain/path/alternate1.html" onclick="return pageJump(this);">some text</a>

Этот последний фрагмент был возвращением в "return pageJump (this);". Если у вас нет «возврата», по моему опыту, он просто перезагружает страницу.

Я оставил свои контрольные точки (оповещения), просто прокомментировал их.

...