2015-06-17 4 views
1

У меня есть тип javascript, который больше похож на виджет, который отображает динамический контент (этот контент синдицируется с другого сайта). Это то, что у меня есть:JavaScript Feed- Открытые ссылки в новой вкладке

<div id="previewWidget"></div> 
<script type="text/javascript" src="https://api.something/hlwidgetcommon.js"> 
<script type="text/javascript" src="https://api.something/hlwidgetcommon.js"></script> 
<script type="text/javascript" src="http://api.something/latestDiscussion.js"></script> 
<script type="text/javascript"> 
    document.addEventListener('DOMContentLoaded', function() { 
    hl.latestDiscussion('previewWidget', { 
     discussionKey:'d06c3624-210e3-4a2b-a303-003f7ed66e038', <---------- random letters 
     maxToRetrieve:'3', 
     subjectLength:'50', 
     contentLength:'160', 
     moreUrl:'https://www.something.com', 
     showLoginStatus:'0', 
     loginUrl:'https://www.something.com', 
     domainUrl:'https://www.something.com', 
     cbUseBioBubble:'0', 
     includeStaff:'1', 
     HLIAMKey:'d06c3624-210e3-4a2b-a303-003f7ed66e038' <---------- more random letters 
    }); 
    }); 
</script> 

(http://www.pastebin.ca/3030247)

Что я хотел бы сделать то, что каждая ссылка, что канал генерирует открывается в новой вкладке. Для меня нет <a href="#">target=_blank.

Примера: Это то, что подача генерирует (его подача на форуме): http://imgur.com/iQ45OtK

+0

Можете ли вы привести пример динамического контента? – rady

+0

То, что я подразумевал под «Динамическим контентом», было постоянно освежающим. Чтобы быть точнее, это фид Форума, каждый раз, когда кто-то отвечает на этом форуме, обновляет фид – Laurenzanoster

+0

Я под подставкой, что. Я имею в виду, как структурирован html, как структурируются ссылки? Увольняют ли они из события onclick в JS, являются ли они фактическими привязными тегами. Есть несколько способов сделать это, и, зная больше, мы не можем вам помочь. Если вы используете услугу, нам нужно знать эту услугу. – rady

ответ

0

Вероятно, самое простое решение: если у вас есть какие-либо <a> элементов в фиде, то вы можете легко дать им цель =» _blank "через JS. При использовании JQuery, вы можете использовать этот бит JS, например:

$("#previewWidget a[href]").each(function() { 
    $(this).attr("target","_blank"); 
}); 

Если вы хотите сканировать текст каждого сообщения для URL-адресов, то вы можете обернуть эти адреса с <a target="_blank"> элементами. Для получения дополнительной информации см. this post, так как немного сложно точно идентифицировать URL-адреса с помощью JS.

К сожалению, открытие ссылок на новой вкладке с использованием Javascript является ненадежным, потому что это связано с проблемами конфигурации браузера - часто вы попадаете в блокировщик всплывающих окон. См. this post для более подробной информации.

+0

Я пробовал первый вариант, но я не мог заставить его работать. это то, что я сделал: Пошел в header.php, между и вставил: Это вы имели в виду? – Laurenzanoster

+0

Вы правы, чтобы включить jQuery в пределах . Чтобы это решение работало, вы должны запустить вышеуказанный код javascript ПОСЛЕ каждого раза, когда новый контент загружается в ваш канал. Оберните мой JS в функции и вызовите эту функцию либо с помощью прослушивателя событий, либо с помощью прямого обратного вызова. [JSFiddle] (например, http://jsfiddle.net/x9g84mpy/). – sqsinger

Смежные вопросы