2014-11-23 3 views
1

У меня есть следующий код JavaScript:JavaScript - расщепление window.location.href возвращает неопределенное значение

var url = window.location.href; 

var link = url.split('?link='); 

link[1] = "http://goo.gl/" + link[1]; 
link[2] = "http://goo.gl/" + link[2]; 

function ad(){ 
    window.location.href = link[1]; 
} 

function ac(){ 
    window.open(link[2], '_blank'); 
} 

И есть ссылка:

<a href="javascript:ac();" onclick="ad();">ACCESS</a> 

Проблема заключается в том, что в некоторых компьютерах, раскол не работает.

Например: если ссылка mySite.com/link.html?link=wfijOp?link=atGdj. Он должен дать мне goo.gl/wfijOp и goo.gl/atGdj вместо goo.gl/undefined и goo.gl/undefined.

В чем проблема с этими компьютерами?

+0

Это, вероятно, потому, что вы пытаетесь получить доступ к массивам элемент, который не существует. Массивы основаны на нуле, поэтому, если вы хотите захватить второй элемент в массиве, вы должны написать ссылку [1]. –

+0

@ black123 Я думаю, что он имеет желаемое поведение. 'link [0]' будет выдавать 'http: //..../ link.html' часть, нет? – arcyqwerty

+2

как общее примечание, однако, параметры строки запроса должны быть разделены символом '& param = value' not'? '. '?' используется только для выделения строки запроса из пути – arcyqwerty

ответ

0

Спасибо, @arcyqwerty! Я сделал то, что вы предложили.

Обычно? используется для отделения строки запроса от пути (см. комментарий выше). Попробуйте использовать другой разделитель, например link = abcd, efgh, ijkl. Вы можете использовать это, чтобы получить переменную строки запроса. - @arcyqwerty

Go to the answer

Смежные вопросы