Открыть ссылку AJAX в новом окне или вкладке

У меня есть страница со ссылками, которые загружают новый контент в один из div. Это работает нормально, но я также хотел бы дать пользователю возможность открывать эти ссылки в новой вкладке, если они щелкнут правой кнопкой мыши и выберут «открыть в новой вкладке».

Таким образом, javascript AJAX будет нормально обрабатывать загрузку нового контента, но затем, если они выберут «открыть в новой вкладке», возможно, основной HREF сработает и перенесет пользователя на полную страницу с контентом на другой вкладке. Что-то типа:

<a href="example.com/fullPageWithContent.html" onclick="loadContentOnly(1);">Click me</a>

<script>
function loadContentOnly(n) {
event.preventDefault(); //Some condition here?

// AJAX load content for n...

};
</script>

Как это лучше всего достигается? (Я использую jQuery, но ванильное решение еще лучше!)


person Colin R. Turner    schedule 11.08.2018    source источник
comment
Этот вопрос не является дубликатом отмеченного выше вопроса. Любой, кто читает оба, может быстро определить это. Как удалить повторяющееся уведомление?   -  person Colin R. Turner    schedule 13.08.2018


Ответы (1)


Не совсем ясно, является ли определение отображения на новой странице глобальным или нет.

Далее предполагается, что это предопределено

<a href="example.com/fullPageWithContent.html" onclick="return loadContent(1, this);">Click me</a>

<script>
function loadContent(n, el) {

  if(showInNewPage){
     el.target = '_blank';
     return true;
  } else{    
      // AJAX load content for n...

      return false;    
};
</script>
person charlietfl    schedule 11.08.2018
comment
Что вы имеете в виду под «глобальным»? Я отредактировал вопрос, чтобы уточнить его. Проблема заключается в том, как реализовать резервный вариант HREF, если кто-то выбирает «открыть вкладку в новом окне». - person Colin R. Turner; 13.08.2018
comment
Это будет переменная, основанная на том, что вы упомянули, что планируете предоставить пользователям возможность выбора. Если это не то, что вы ожидали, нужно более подробное объяснение того, как вы хотели, чтобы это работало. - person charlietfl; 13.08.2018