Jump to content
  • 0

Java script


фонарик
 Share

Question

Подскажите, как определить название картинки при клике на нее? Допустим, на сайте есть куча картинок с разными путями и названиями. Как сделать так, чтобы при клике по любой картинке команда alert выдавала имя файла этой картинки? Допустим, картинка лежит по адресу

file:///C|/Users/User/Desktop/pic_01.jpg и при клике на нее выдавалось имя файла pic_01 ?

Нашел только вот что:

	var val='http://localhost/site/someimage.jpg'
alert(val.substring(val.lastIndexOf('/')+1,val.length))

Но тут в переменную val присваивается абсолютный неизменяемый адрес, а команда substring в итоге выдает имя файла с расширением, а мне оно не нужно.

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Наверняка не единственный вариант:

var val='http://localhost/site/someimage.jpg';
x = val.substring(val.lastIndexOf('/')+1,val.length);
alert(x.replace('.jpg', ''));

Более гибко можно сделать с помощью условия или регулярки.

Link to comment
Share on other sites

  • 0

Подскажите, как определить название картинки при клике на нее? Допустим, на сайте есть куча картинок с разными путями и названиями. Как сделать так, чтобы при клике по любой картинке команда alert выдавала имя файла этой картинки? Допустим, картинка лежит по адресу

file:///C|/Users/User/Desktop/pic_01.jpg и при клике на нее выдавалось имя файла pic_01 ?

Нашел только вот что:

	var val='http://localhost/site/someimage.jpg'
alert(val.substring(val.lastIndexOf('/')+1,val.length))

Но тут в переменную val присваивается абсолютный неизменяемый адрес, а команда substring в итоге выдает имя файла с расширением, а мне оно не нужно.

function setTitle(elem) {
// elem - картинка под курсором
var title = elem.src.replace(/.+\/(.+)\..{2,4}$/, "$1");
elem.title = title; // или alert(title);
}

Эта конструкция реализована у меня здесь

Link to comment
Share on other sites

  • 0

Ребята, спасибо вам огромное :) Все работает все что нужно. Одна голова хорошо а 2 лучше :) (это я свою не считал) )))

Ну и дела :( Рано радовался (( Почему если имя картинки "Самая клёвая картинка.gif", то alert(title) выдает такой шифр:

%D0%A1%D0%B0%D0%BC%D0%B0%D1%8F%20%D0%BA%D0%BB%D1%91%D0%B2%D0%B0%D1%8F%20%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B0

Подскажите, в чем может быть дело ?

Edited by фонарик
Link to comment
Share on other sites

  • 0

Обработайте эту кракозябру встроенной функцие decodeURI(arg1).


var krakozyabra = %D0%A1%D0%B0%D0%BC%D0%B0%D1%8F%20%D0%BA%D0%BB%D1%91%D0%B2%D0%B0%D1%8F%20%D0%BA%
D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B0;
decodeURI(krakozyabra);

Когда на сервер передаются через аякс гетом какие-то переменные содержащие русские символы или знаки их принято кодировать encodeURI. Так же надо уделять данным крагозябрам при валидации форм: с помощью их можно ставить пробелы(%20) или кавчки - уязвимость для скл запросов.

Посмотрим википедию( http://ru.wikipedia.org/wiki/URI ):

URL стал фундаментальным нововведением в Интернете, поэтому принципы URI документально закреплялись так, чтобы обеспечить полную совместимость с URL. Отсюда появился и большой недостаток URI, пришедший как наследство от URL. В URI, как и в URL, можно использовать только ограниченный набор латинских символов и знаков препинания (даже меньший, нежели в ASCII). Иными словами, если мы захотим использовать в URI символы кириллицы, или иероглифы, или, скажем, специфические символы французского языка, то нам придётся кодировать URI таким же образом, каким в Википедии кодируются URL с символами Юникода. Например, строка вида:

http://ru.wikipedia.org/wiki/Кириллица

кодируется в URL как:

http://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B0

--

Спасибо за информацию

Есть такая зелёненькая кнопочка...

Edited by moron
Link to comment
Share on other sites

  • 0

Ребята, спасибо вам огромное :) Все работает все что нужно. Одна голова хорошо а 2 лучше :) (это я свою не считал) )))

Ну и дела :( Рано радовался (( Почему если имя картинки "Самая клёвая картинка.gif", то alert(title) выдает такой шифр:

%D0%A1%D0%B0%D0%BC%D0%B0%D1%8F%20%D0%BA%D0%BB%D1%91%D0%B2%D0%B0%D1%8F%20%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B0

Подскажите, в чем может быть дело ?

Это браузер переводит кириллицу в Hex- код. Названия файлов на сайте делайте в латинице и таких проблем не будет. А можно и замутить что- нибудь для конвертации таких строк.

Обработайте эту кракозябру встроенной функцие decodeURI(arg1).


var krakozyabra = %D0%A1%D0%B0%D0%BC%D0%B0%D1%8F%20%D0%BA%D0%BB%D1%91%D0%B2%D0%B0%D1%8F%20%D0%BA%
D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B0;
decodeURI(krakozyabra);

Когда на сервер передаются через аякс гетом какие-то переменные содержащие русские символы или знаки их принято кодировать encodeURI. Так же надо уделять данным крагозябрам при валидации форм: с помощью их можно ставить пробелы(%20) или кавчки - уязвимость для скл запросов.

Посмотрим википедию( http://ru.wikipedia.org/wiki/URI ):

URL стал фундаментальным нововведением в Интернете, поэтому принципы URI документально закреплялись так, чтобы обеспечить полную совместимость с URL. Отсюда появился и большой недостаток URI, пришедший как наследство от URL. В URI, как и в URL, можно использовать только ограниченный набор латинских символов и знаков препинания (даже меньший, нежели в ASCII). Иными словами, если мы захотим использовать в URI символы кириллицы, или иероглифы, или, скажем, специфические символы французского языка, то нам придётся кодировать URI таким же образом, каким в Википедии кодируются URL с символами Юникода. Например, строка вида:

http://ru.wikipedia.org/wiki/Кириллица

кодируется в URL как:

http://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B0

Спасибо за информацию.

Link to comment
Share on other sites

  • 0
Есть такая зелёненькая кнопочка...
У меня она не работает :( При нажатии пишет: "Действие не выполнено. Вы исчерпали лимит положительных оценок за сегодня." Но я ни разу ее еще не нажимал вообще.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy