JS проверка наличия html кода
Здравствуйте уважаемые форумчане, помогите пожалуйста новичку. Мне нужно на JS в определенном файле проверить наличие куска html кода, если он есть необходимо вывести "одно сообщение", если его нет "другое сообщение".
|
Цитата:
if (document.getElementById("name")) { alert("на странице присутствует элемент с атрибутом id = 'name'"); } else { alert("на странице отсутствует элемент с атрибутом id = 'name'"); } |
Цитата:
Или это текущая страница ? |
Цитата:
Например на странице есть код <img src="/kartinka.jpg" width="1536" height="2048"> если его нет необходимо вывести сообщение, если есть другое сообщение. |
Цитата:
if (document.getElementById("name")) { alert("на странице присутствует элемент с атрибутом id = 'name'"); } else { alert("на странице отсутствует элемент с атрибутом id = 'name'"); } только нужно знать в каком элементе таковой код должен находиться и через соответствующие методы (getElement(s)) получить доступ к нему... |
На странице написал примерный код <img src='/kartinka.jpg' width='1536' height='2048'>
и сделал как сказал lord2kim, <script type="text/javascript"> if (document.getElementById("<img src='/kartinka.jpg' width='1536' height='2048'>")) { alert("на странице присутствует элемент с атрибутом id = 'name'"); } else { alert("на странице отсутствует элемент с атрибутом id = 'name'"); } </script> Но постоянно выводится сообщения "на странице отсутствует элемент с атрибутом id = 'name'" |
Нужно искать по img и src
|
Цитата:
у элемента должен быть атрибут id или name <img src='/kartinka.jpg' width='1536' height='2048' name='name_img' id='id_img'> после этого к элементу можно обращаться с помощью методов document.getElementById("id_img"); document.getElementsByName("name_img")[0] где 0 - это первый элемент в коллекции (массив, возвращаемый методом getElementsByName()), если img на странице первая с соответствующим атрибутом name а если просто искать изображение, то при этом желательно знать его номер (N) на странице (начинается с 0) document.getElementsByTagName("img")[N] если же номер не известен, то в цикле перебирать все элементы коллекции img и проверять атрибут src на соответствие /kartinka.jpg |
lord2kim,
Спасибо! буду пробовать |
lord2kim,
Да так работает но если изменить src='/kartinka.jpg' то пишет что код установлен, пожалуйста напишите как проверить наличие строчки <img src='/kartinka.jpg' name='name_img' id='id_img'> буква в букву если не совпадает выводить соответствующие сообщения, на пхп знаю как сделать но нужно на скрипте. Если конечно можно, вы мне и так помогли, спасибо Вам, если не ответите не обижусь. |
Цитата:
var img = document.getElementById("id_img"); if (img && img.src == "kartinka.jpg") { alert("элемент существует в нужном вам формате"); } else { alert("элемент не существует или существует в ином формате"); } если элемент с атрибутом id (идентификатором) id_img существует и его атрибут src = kartinka.jpg (возможно тут придется прописывать полный путь к картинке, проверите...), то элемент существует в нужно вам варианте... также, если требуется можно проверять его атрибуты ширины (width) и высоты (height) аналогичным образом |
lord2kim,
Спасибо Вам, получилось! |
<img src='/kartinka.jpg' name='name_img' id='id_img'> <script type="text/javascript"> if (document.document.document.getElementById("id_img")) { alert("на странице присутствует элемент с атрибутом id = 'id_img'"); } else { alert("на странице отсутствует элемент с атрибутом id = 'id_img'"); } </script> <img src='/kartinka.jpg' name='name_img' id='id_img2'> <script type="text/javascript"> if (document.document.document.getElementById("id_img")) { alert("на странице присутствует элемент с атрибутом id = 'id_img'"); } else { alert("на странице отсутствует элемент с атрибутом id = 'id_img'"); } </script> id='id_img' Должен быть уникальным |
Deff,
спасибо, теперь тоже самое нужно с ссылкой сделать: Делал по коду lord2kim, но туплю где то Deff не подскажешь? <a href='http://javascript.ru' name='name_a' id='id_a'>http://javascript.ru</a> <script type="text/javascript"> var a = document.getElementById("id_a"); if (a && a.href == "http://javascript.ru") { alert("элемент существует в нужном вам формате"); } else { alert("элемент не существует или существует в ином формате"); } </script> |
<a href='/link.jpg' id='id_link'>Трям</a> <script type="text/javascript"> if (document.getElementById("id_link")) { alert("на странице присутствует элемент с атрибутом id = 'id_link'"); } else { alert("на странице отсутствует элемент с атрибутом id = 'id_link'"); } </script> <a href='/link.jpg' id='id_link2'>Трям</a> <script type="text/javascript"> if (document.getElementById("id_link")) { alert("на странице присутствует элемент с атрибутом id = 'id_link'"); } else { alert("на странице отсутствует элемент с атрибутом id = 'id_link'"); } </script> |
Спасибо , работает, но если изменить /link.jpg показывает "на странице присутствует элемент с атрибутом id = 'id_link"
Тут у меня ошибка где не понимаю <a href='http://javascript.ru' name='name_a' id='id_a'>http://javascript.ru</a> <script type="text/javascript"> var a = document.getElementById("id_a"); if (a && a.href == "http://javascript.ru") { alert("элемент существует в нужном вам формате"); } else { alert("элемент не существует или существует в ином формате"); } </script> |
Цитата:
|
vadim5june,
- Метод ленивого последовательного копирования рулит! |
Dodik,
Поправил(Ошибка перепечатки |
Цитата:
a.href == "http://javascript.ru" попробуйте a.getAttribute("href")=="http://javascript.ru" |
Deff, спасибо, я удалил 2 document и заработало, только как выше сказал не катит такой вариант, если изменить линк то все равно пишет что есть код
|
Цитата:
Я уже говорил - что данному элементу присваиваете уникальный id и его и проверяете скриптом - на остальное скрипт плюёт Т.е если есть линк - должен быть и уникальный id , который и проверяецо cкриптом (Точно такая же проверка и по картинкам |
vadim5june, благодарен Вам все получилось как надо
|
vadim5june,
Он на сервере - проверяет - легче проставить id к нужному линку или картинке - хотя эт лорд удобство выдумал скрипту -а не пользователю По идее парсить в цикле а или img |
Цитата:
|
vadim5june,
Мну про вообще... (мысли |
Цитата:
Цитата:
|
Можно попробовать search в body, сам скрипт в head, хотя придётся подрабатывать если в строке есть символы &, ? ..
<head> <script> window.onload = function () { var str = '<div>'; if (document.body.innerHTML.search(str) != -1) { alert('есть'); } else { alert('нет'); } } </script> </head> <body> <div></div> </body> <head> <script> window.onload = function () { var str = '<div>'; if (document.body.innerHTML.search(str) != -1) { alert('есть'); } else { alert('нет'); } } </script> </head> <body> </body> |
Простите меня, последний раз пишу :) , как
анкор ссылки проверить на совпадение? |
Dodik, Можа есть jQuery на странице ?
Тады проще |
Цитата:
|
Для таких строк прокатит
<head> <script> window.onload = function () { var str = '<img src="/kartinka.jpg" width="1536" height="2048">'; if (document.body.innerHTML.search(str) != -1) { alert('есть'); } else { alert('нет'); } } </script> </head> <body> <img src="/kartinka.jpg" width="1536" height="2048"> </body> |
Убрать ? и & можно как-нибудь так
<head> <script> window.onload = function () { var str1 = '<img src="http://javascript.ru/forum/image.php?u=19820&dateline=1334914235">'; str1 = str1.replace(/\?/g, '').replace(/&/g, '&'); var str2 = document.body.innerHTML; str2 = str2.replace(/\?/g, ''); if (str2.search(str1) != -1) { alert('есть'); } else { alert('нет'); } } </script> </head> <body> <img src="http://javascript.ru/forum/image.php?u=19820&dateline=1334914235"> </body> |
bes,
В старых ие нет кавычек и буквы тегов - заглавные |
Цитата:
<head> <script> window.onload = function () { var str1 = '<img src="http://javascript.ru/forum/image.php?u=19820&dateline=1334914235">'; str1 = str1.toUpperCase().replace(/\?/g, '').replace(/&/g, '&'); var str2 = document.body.innerHTML; str2 = str2.toUpperCase().replace(/\?/g, ''); if (str2.search(str1) != -1) { alert('есть'); } else { alert('нет'); } } </script> </head> <body> <img src="http://javascript.ru/forum/image.php?u=19820&dateline=1334914235"> </body> |
bes,
Последний - в ИЕ7 работает. |
Цитата:
|
Остаётся вопрос: почему в строке str1 & заменяется, а в str2 - нет (заменяется на amp;, котрый нужно дополнительно убирать?
<head> <script> window.onload = function () { var str1 = '<img src="http://javascript.ru/forum/image.php?u=19820&dateline=1334914235">'; str1 = str1.replace(/&/g, ''); var str2 = document.body.innerHTML; str2 = str2.replace(/&/g, ''); alert(str1 +'\n'+str2); str2 = str2.replace(/amp;/g, ''); alert(str1 +'\n'+str2); } </script> </head> <body> <img src="http://javascript.ru/forum/image.php?u=19820&dateline=1334914235"> </body> |
Часовой пояс GMT +3, время: 05:54. |