Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   выполнение функции по url (https://javascript.ru/forum/misc/54415-vypolnenie-funkcii-po-url.html)

Dark Surv 16.03.2015 18:08

выполнение функции по url
 
Всем привет!
Общем у меня следующая проблема

Мне нужно передать параметры в javascript через get-url
Мы находимся на странице site.ru/page
нажимаем на ссылку и переходим на site.ru/page?modal=true&page=me.html
при этом выполняется функция modal() - она уже готова
мы можем смело добавить страницу в закладки,
а потом опять зайти - и о чудо, загрузилась страница,
а сверху над ней модалка(так же работает просмотр картинок ВКонтакте)
причем как Вы видите мне нужно НЕ ЧЕРЕЗ ЯКОРЬ
как так сделать? :help:

danik.js 16.03.2015 18:36

Цитата:

Сообщение от Dark Surv
НЕ ЧЕРЕЗ ЯКОРЬ

Сделай сначала через якорь. Как сделаешь - подходи сюда, мы тебе переделаем под query параметры.;)

Dark Surv 16.03.2015 18:37

общем понял как получить url параметр с помощью js
function getGet(name) {
	var s = window.location.search;
	s = s.match(new RegExp(name + '=([^&=]+)'));
	return s ? s[1] : false;
}

alert(getGet('tab'));

Для урла site.ru/page?tab=test выведет "test"

но решение своей проблемы не нашел =(

Dark Surv 16.03.2015 18:41

danik.js,
Все просто, якорь хранится в
window.location.hash

Ну а дальше собственно стандартные условия...
if (window.location.hash == "modal"){
   modal();
}
else if(..) ...

если перейти по site.ru/page#modal
выполнится функция modal()

Dark Surv 16.03.2015 18:50

мне еще предлогали вот так
var url = window.location.search.split('?')[1]; 
if (url == 'modal=true') { 
    modal(me.html); 
};

мне не лень пошуглить, я вреале не знаю
и к сожелению очень уг в javascript, я работаю с php
с жабоскриптами минимальные знания

Dark Surv 16.03.2015 20:13

а почему не работает
<script> 
function get(n){  
a=window.location.toString();  
a="&"+a.substring(a.indexOf("?")+1); 
p=a.indexOf("&"+n+"=");  
a=p==-1?'':a.substring(p+n.length+2);  
return a.indexOf("&")>=0?a.substring(0,a.indexOf("&")):a;
}

var url = window.location.search.split('?')[1]; 
if (url == 'modal=true') alert(get('page')); 
</script>


когда зайти site.ru/page?modal=true выдает пустой алерт
а когда site.ru/page?modal=true&page или site.ru/page?modal=true&page=test
алерта нет?

danik.js 17.03.2015 05:45

Цитата:

Сообщение от Dark Surv
и к сожелению очень уг в javascript, я работаю с php

Ну так ты и сделай на php!
<script>
<? if (набор нужных тебе условий) echo 'modal()' ?>
</script>

Dark Surv 17.03.2015 09:45

Цитата:

Сообщение от danik.js
Ну так ты и сделай на php!

я уже разобрался без Вас, но всеравно спасибо!
<script> 
function get(n){  
a=window.location.toString();  
a="&"+a.substring(a.indexOf("?")+1); 
p=a.indexOf("&"+n+"=");  
a=p==-1?'':a.substring(p+n.length+2);  
return a.indexOf("&")>=0?a.substring(0,a.indexOf("&")):a;
}

var url = window.location.search.split('?')[1]; 
if (url == 'modal=true') {
					$.arcticmodal({
						type: 'ajax',
						url: getParam('page'),
					});
}; 
</script>


Часовой пояс GMT +3, время: 12:37.