Автоматический вывод иконки
Привет.
Нужна ваша помощь в регулярке. Нужно после ссылки, которая если содержит один из трёх видов расширений выводилась иконка. Пробую делать так: <script type="text/javascript"> function replace() { var url = (/\.(\w+)($|#|\?)/i); var text = 'Тест /Staff/Common/HTMI/docs/cennosti.ppt'; var result = text.match(url); if (result != null) { var fullurl = result[1]; if (fullurl == "doc") { document.getElementById('t').innerHTML = text + "<img src='/info/images/word.gif'>"; } else if (fullurl == "ppt") { document.getElementById('t').innerHTML = text + "<img src='/info/images/ppoint.gif'>"; } else if (fullurl == "xls") { document.getElementById('t').innerHTML = text + "<img src='/info/images/excel.gif'>"; } else { document.getElementById('t').innerHTML = text; } } } </script> Вроде всё в порядке, но стоит входным данным измениться например на var text = '<p>Тест <a href="/Staff/Common/HTMI/docs/cennosti.ppt">/Staff/Common/HTMI/docs/cennosti.ppt</a> тут что-то ещё</p>';скрипт не работает. Помогите пожалуйста. Спасибо. |
<script type="text/javascript"> function replace() { var text = '<a href="/load-3457823758">example.rar</a>', result = text.match( /\.(rar|exe|mp3)/ ); if ( result != null ) { document.getElementById( 't' ).innerHTML = text + '<img src="/icons' + result[1] + '.png" />'; } } </script> /.(rar|exe|mp3)/ — здесь пишите через | список форматов. В папку icons залить изображения с именами, соответствующими формату файла, например, rar.png |
exec, спасибо, а как сделать чтобы после ссылки была иконка? В данной реализации иконка будет после основного текста.
|
target.parentNode.insertBefore( element, target.nextSibling ); target — после какого элемента ставить, element — элемент для вставки. Полный код не могу привести, т.к. непонятно, после какой ссылки вставлять. |
К примеру вот такая строка
var text = '<p>Тест <a href="/Staff/Common/HTMI/docs/cennosti.ppt">ссылка<a/> здесь что-то еще будет</p>'; Соответственно сразу после ссылки /Staff/Common/HTMI/docs/cennosti.ppt нужно вставить иконку ppt.gif |
Нужен DOM-элемент, а не строка.
|
Делаю в xsl:
<msxsl:script language="JavaScript" implements-prefix="ext"> <![CDATA[ function matchurl(text) { var txt = text[0].text.substr(0); result = txt.match(/\.(doc|ppt|xls)/); if (result != null) { return txt + '<img src="/Info/images/' + result[1] + '.gif" />'; } else { return txt; } } ]]> </msxsl:script> Вызываю: <p style="clear: both;"><xsl:value-of select="ext:matchurl(rss/channel/item/text)" disable-output-escaping="yes" /></p> В узле text содержится примерно та строка, которую привёл ранее. |
Часовой пояс GMT +3, время: 22:41. |