Автоматический вывод иконки
Привет.
Нужна ваша помощь в регулярке. Нужно после ссылки, которая если содержит один из трёх видов расширений выводилась иконка. Пробую делать так:
<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, время: 18:05. |