Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2013, 00:00
Аспирант
Отправить личное сообщение для andreydial Посмотреть профиль Найти все сообщения от andreydial
 
Регистрация: 13.05.2013
Сообщений: 39

Проблема с полем вставки видеоссылки.
Приветствую. Есть страница на сайте http://trademosh.com/submitMobile, пишется объявление, и в поле Video link вставляется ссылка. Если она имеет вид: http://youtu.be/******* либо http://www.youtube.com/watch?v=******* все проходит нормально.
Если видеоссылка имеет вид http://www.youtube.com/watch?v=kBevz...yer_detailpage то страница подвисает. Если ссылку которая вызывает зависание укоротить до http://www.youtube.com/watch?v=*******&feature то опять таки все работает. Если добавить один символ =, те http://www.youtube.com/watch?v=********&feature=, то страница подвисает.
// серилизация формы
var script = LINK_baseUrl+"php/map.php";
var HTML__user_agreement="";
var noDobblCl=false;
function serilase(){
	$("#submitt").hide();
	ajaxLoader.show();
	var lng		= $("#lng").val().trim();
	var lat		= $("#lat").val().trim();
	var typeLocation	= $.trim($("#address").val())				=== $("#address").attr("placeholder")?"":$.trim($("#address").val());
	var name					= $.trim($("#title_name").val())		=== $("#title_name").attr("placeholder")?"":$.trim($("#title_name").val());
	var descr					= $.trim($("#descr").val())					=== $("#descr").attr("placeholder")?"":$.trim($("#descr").val());
	var email					= $.trim($("#email").val())					=== $("#email").attr("placeholder")?"":$.trim($("#email").val());
	var link_					= $.trim($("#Webpage_Link").val())	=== $("#Webpage_Link").attr("placeholder")?"":$.trim($("#Webpage_Link").val());
	var price					= $.trim($("#price").val())					=== $("#price").attr("placeholder")?"":$.trim($("#price").val());
	var vlink					= $.trim($("#Video_Link").val())		=== $("#Video_Link").attr("placeholder")?"":$.trim($("#Video_Link").val());
	var capcha				=	$.trim($("#inputCapcha").val())		=== $("#inputCapcha").attr("placeholder")?"":$.trim($("#inputCapcha").val());
	var type					= $.trim($("#select_cat option:selected").val());
	var age="",gender="";
	if ($("#forAgeGender").is(":visible"))
	{
		age			= parseInt($("#age").val().trim());
		age			= "&age="+age;
		gender	= $("#gender option:selected").val().trim();
		gender	= "&gender="+gender;
	}
	var str = "action=senddata&address="+typeLocation+"&description="+descr+"&email="+email+"&lng="+lng+"&lat="+lat+"&link="+link_+"&name="+name+"&price="+price+"&type="+type+"&vlink="+"&capcha="+capcha+"&vlink="+vlink+age+gender;
	//alert (str);

	$.ajax(
	{
		type	: "post",
		async	: false,
		data	: str,
		url		: LINK_baseUrl+"php/map.php",
		dataType: 'json',
		success	: function(data)
		{

Если раскодировать alert, то видно что посылается в пхп всегда, т.е. нет проблемы здесь.
Вопрос как в функции сериализации просто отрезать кусок ссылки после символа &? Потому как дальше идет кучка пхп файлов, где отдельно это поле не обрабатывается, а сразу пишеться в базу данных и ожидает проверочного кода с мыла. Короче говоря вполне устроило бы просто обрезать кусок ссылки начиная с символа &. Помогите пожалуста.
К любой видеоссылке если прибавить префикс &feature=player_detailpage происходит сбой страницы.

Последний раз редактировалось andreydial, 08.08.2013 в 00:17.
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2013, 14:16
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

не понял, вся задача - удалить подстроку из строки? и всё?

тогда вариантов много. на любой вкус.
либо используя .split('&'), и затем убирая лишние элементы из массива; либо replace('&feature=blabla', ''); либо найти первое вхождение амперсанда в строку и удалить всё после этой позиции..

Последний раз редактировалось keen, 08.08.2013 в 14:18.
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2013, 00:05
Аспирант
Отправить личное сообщение для andreydial Посмотреть профиль Найти все сообщения от andreydial
 
Регистрация: 13.05.2013
Сообщений: 39

Вставил две такие строчки (3 и 4) в код
var vlink					= $.trim($("#Video_Link").val())		=== $("#Video_Link").attr("placeholder")?"":$.trim($("#Video_Link").val());

vlinkIndex = vlink.indexof("&");
	//vlink = vlink.substring(0, vlinkIndex+1);

И уже первая вызывает зависание. Что я не так делаю?

Пишет мне Unhandled error 'vlink.indexof' is not a function

И даже если так сделать
function getVlinkTrue(oldvlink){
	//var vlinkIndex = vlink.indexof("&");
	newvlink = oldvlink.substring(0, oldvlink.indexof("&")+1);
	return newvlink;
	}
	
	vlink = getVlinkTrue(vlink);

Все равно та же ошибка.
Помогите пожалуста, не могу понять почему так.

Последний раз редактировалось andreydial, 09.08.2013 в 01:07.
Ответить с цитированием
  #4 (permalink)  
Старый 09.08.2013, 09:35
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

var vlink = $.trim($("#Video_Link").val()) === $("#Video_Link").attr("placeholder")?"":$.trim($("#Video_Link").val());

это адское выражение тебе вернёт значение типа boolean, конечно там нет строковых функций.

напиши по-человечески какое (какие) значение есть изначально, и что хочешь получить на выходе.
без привязки к dom-элементам и jquery.
тогда помогу)
Ответить с цитированием
  #5 (permalink)  
Старый 09.08.2013, 11:41
Аспирант
Отправить личное сообщение для andreydial Посмотреть профиль Найти все сообщения от andreydial
 
Регистрация: 13.05.2013
Сообщений: 39

Если входящая ссылка имеет вид
хттп://ввв.youtube.com/watch?v=kBevzsFGQv8&feature=player_detailpage(руские буквы чтобы форум строку в урл не преобразовывал, естественно там http/www)
Она должна быть преобразована в
хттп://ввв.youtube.com/watch?v=kBevzsFGQv8
те отброcить часть после &.

Последний раз редактировалось andreydial, 09.08.2013 в 11:45.
Ответить с цитированием
  #6 (permalink)  
Старый 09.08.2013, 14:31
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

function featureRemover(s) {
    return ('' + s).replace('&feature=player_detailpage', '');
}

console.log(featureRemover('_ttp://www.youtube.com/watch?v=kBevzsFGQv8'));
// выведет: _ttp://www.youtube.com/watch?v=kBevzsFGQv8
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2013, 15:16
Аспирант
Отправить личное сообщение для andreydial Посмотреть профиль Найти все сообщения от andreydial
 
Регистрация: 13.05.2013
Сообщений: 39

Сообщение от keen Посмотреть сообщение
function featureRemover(s) {
    return ('' + s).replace('&feature=player_detailpage', '');
}

console.log(featureRemover('_ttp://www.youtube.com/watch?v=kBevzsFGQv8'));
// выведет: _ttp://www.youtube.com/watch?v=kBevzsFGQv8
а если после & будут другие символы? Не лучше ли удалять любое все что стоит после &?
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2013, 19:53
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

function featureRemover(s) {
    var i = ('' + s).indexOf('&');
    if (i != -1) {
        return ('' + s).substr(0, i);
    }
    return s;
}
 
console.log(featureRemover('_ttp://www.youtube.com/watch?v=kBevzsFGQv8&feature=player_detailpage&something=something2'));
// _ttp://www.youtube.com/watch?v=kBevzsFGQv8
Ответить с цитированием
  #9 (permalink)  
Старый 10.08.2013, 01:31
Аспирант
Отправить личное сообщение для andreydial Посмотреть профиль Найти все сообщения от andreydial
 
Регистрация: 13.05.2013
Сообщений: 39

Огромное спасибо!
Но все таки адово выражение строку возвращает, правда не знаю как.
Добавил после вашей функции такой кодец
vlink = featureRemover(vlink);

И наступила нирвана! Теперь смело юзеры могут ссылку на видео копировать из строки браузера!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема вставки ссылок при копировании из MSWORD frizbi jQuery 10 05.07.2012 15:46
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12