Выполнение методов JS для URL, отправленного пользователем? - PullRequest
1 голос
/ 17 февраля 2011

Я не нашел ответа на это, и, поскольку я довольно новичок в JS, я не знаю, возможно ли это вообще.

У меня есть обычная HTML-форма, где единственным полем является пользователь, который вводит URL-адрес (любой URL-адрес) и нажимает кнопку "Отправить".

URL-адрес будет «отправлен» в код JS, который, я думаю, хранит этот URL-адрес в некоторой переменной. По сути, мне нужно иметь возможность вызывать getElementsByTagName () для любого URL, отправленного пользователем.

Моя цель - подсчитать, сколько раз URL содержит указанный элемент, и я знаю, как это сделать :)

Как мне интерпретировать URL-адрес, отправленный кем-то через форму, а затем взять этот URL-адрес и иметь возможность выполнять с ним методы (например, getElementsById)? Я хочу вернуть счетчик количества элементов пользователю.

Есть идеи? Можно ли все это сделать в JS? Это возможно?

Ответы [ 2 ]

1 голос
/ 17 февраля 2011

Когда вы говорите «URL», я предполагаю, что вы говорите о реальной веб-странице, а не о строке URL. Другими словами, вы хотите загрузить весь DOM в переменную javascript, а затем проанализировать ее с помощью getElementsByTagName() и т. Д. Javascript не может загрузить эту веб-страницу из-за той же политики происхождения , если только пользователи не могут только отправлять страницы которые находятся в том же домене, что и ваш сайт. Если бы это было так, вы могли бы использовать рамку. В противном случае JS не сможет сделать это без Jsonp, что в данном случае не сработает.

Однако еще не все потеряно. Вы можете сделать так, чтобы ваш JS сделал асинхронный запрос (ajax) к вашему собственному серверу. Язык сценариев вашего сервера / может / получить весь DOM веб-страницы (например, PHP может сделать это с помощью cURL). Затем он может отправить всю строку обратно в JS в виде xml, который можно проанализировать. Удачи.

0 голосов
/ 17 февраля 2011

Вы не можете сделать это на клиенте (в веб-браузере) только с помощью Javascript, потому что правила безопасности не позволят вашей странице извлекать и просматривать контент из другого домена. Вам нужно будет отправить URL на сервер и заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...