2012-06-06 1 views
2

настоящего времени у меня следующий яваскрипт код работа:(Javascript) Как извлечь последнюю часть текущего URL-адреса без расширения файла?

<script type="text/javascript"> 
    urlPath=window.location.pathname; 
    urlPathArray = urlPath.split('/'); 
    urlPath1=urlPathArray[2]; 
    document.write('<a href="http://www.example.com/contact.php?id='+urlPath1+'">test</a>'); 
    </script> 

позволяет сказать, что текущий URL является http://www.example.com/products/0033.htm

Javascript производит гиперссылка на http://www.example.com/contact.php?id=0033.htm

Как изменить этот сценарий так, чтобы urlPath1 и возможная гиперссылка без части «.htm»?

+0

Является ли файл расширением любого размера или только '.htm'? Потому что вы можете просто использовать подстроку –

+0

'urlPathArray [2];' Использовать 'urlPathArray [urlPathArray.length - 1]', чтобы получить последний элемент ... –

ответ

1

Сделайте то, что вы сделали, чтобы получить имя файла, но разделите на . вместо / и возьмите первый кусок.

+0

Это может не сработать, потому что первой частью будет '/ products/0033' вместо 0033. 'location.pathname' возвращает относительный путь. –

0
var urlPath = window.location.pathname, 
    urlPathArray = urlPath.split('.'), 
    urlPath1 = urlPathArray[0].split('/').pop(); 

document.write('<a href="http://www.example.com/contact.php?id='+urlPath1+'">test</a>'); 
+0

Точки могут находиться в середине пути. Вы должны изолировать последний сегмент пути, а затем удалить любое расширение, которое может быть там. – jfriend00

+0

Привет, Грейс, спасибо за ваш быстрый ответ. Я попробовал ваш пример, но он, похоже, не работает. Есть идеи? – ghilton

+0

Обновление: я решил это, используя следующий модифицированный код: 'urlPath = window.location.pathname; urlPathArray = urlPath.split ('/'); urlPath1 = urlPathArray [urlPathArray.length - 1]; urlPath2 = urlPath1.split ('.'); productID = urlPath2 [0]; document.write ('test'); ' Еще раз спасибо за вашу помощь :) – ghilton