Cкрипт подгрузки кода из другого файла? JavaScript - Скрипты и коды для юкоз - Форум аццкого кодера
Страница 1 из 212»
Модератор форума: likbezz 
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Как сделать... Тема только по сайтам в системе uCoz » Cкрипт подгрузки кода из другого файла? JavaScript (Сделать option в столбец и скрипт работал)
Cкрипт подгрузки кода из другого файла? JavaScript
Дата: Воскресенье, 14.06.2015, 20:17 |
legolas
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Ну что же за чудо Юкоз. Только все получилось, как снова проблема. Из-за огромного кол-ва option в глобальных блоках теперь непомещается код на страницу, более 75000 символов(((((((
Может всетаки есть какойскрипт подгрузки кода из другого файла или фрэймом? Хоть бросай теперь все(

Добавлено (14.06.2015, 11:30)
---------------------------------------------
Помоему получилось, через document.write

Добавлено (14.06.2015, 11:41)
---------------------------------------------
На странице редактирования не работае, гдето слэшем перекрыть надо

Код
    e.replaceWith('<input type="text" id="bdF15" class="manFlOth3" style="width:100%" name="other3"><br><select id="bdbd" multiple><script src="/js/actors.js"></script></select>');  

Добавлено (14.06.2015, 18:50)
---------------------------------------------
Вот полный код:

Код
(function(){  
var e=$('#addEntForm .manFlOth3'),v=e.val();  
e.replaceWith('<input type="text" id="bdF15" class="manFlOth3" style="width:100%" name="other3"><br><select id="bdbd" multiple><script src="/js/actors.js"><\/script></select>');  
$('#addEntForm .manFlOth3').val(v);  
})();

Добавлено (14.06.2015, 20:17)
---------------------------------------------

Код
(function(){  
var e=$('#addEntForm .manFlOth3'),v=e.val();
var ACTORS='<script src="/js/actors.js"></script>';     
e.replaceWith('<input type="text" id="bdF15" class="manFlOth3" style="width:100%" name="other3"><br><select id="bdbd" multiple>'+ACTORS+'</select>');  
$('#addEntForm .manFlOth3').val(v);  
})();


И так не катит


 
Дата: Понедельник, 15.06.2015, 03:19 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


legolas,
Цитата legolas, Вс, 14.06.2015, 20:17:18
Может всетаки есть какойскрипт подгрузки кода из другого файла или фрэймом?

Конечно.
Get или просто подгружать сам скрипт - как показано постом выше.

Цитата legolas, Вс, 14.06.2015, 20:17:18
И так не катит

Цитата likbezz, Пт, 12.06.2015, 02:03:43
Или всю эту функцию поместить в отдельный файл и подключать уже его.
А в файле так:

Уже готовый код, .. зачем изобретать велосипед?


 
Дата: Понедельник, 15.06.2015, 14:43 |
legolas
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Цитата

Цитата likbezz, Пт, 12.06.2015, 02:03:43
Или всю эту функцию поместить в отдельный файл и подключать уже его.
А в файле так:

Уже готовый код, .. зачем изобретать велосипед?


Так я им и воспользовался но тег script внутри скрипта не работает

http://hdonline.ucoz.com/IMG_20150615_102825.jpg

Если поставить слэш <\/script> , то скрипт работает, только его содержимое (все мои option) находятся в самом низу страницы.

Добавлено (15.06.2015, 11:59)
---------------------------------------------
Может конфликтует гдето?
Если туда же ставить глобальный блок с тем же содержимым, все на своих местах становится.

Добавлено (15.06.2015, 14:16)
---------------------------------------------
Нашел как вставить <script>

Код
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript">
     document.write('Подключаем test1.js<br>');
     document.write('<script type="text/javascript" src="test1.js"><\x2fscript>');
     document.write('Подключаем test2.js<br>');
     document.write('<script type="text/javascript" src="test2.js"><\x2fscript>');
     document.write('Закончили подключать<br>');
</script>
</body>
</html>


Все равно весь мой текст из скрипта всамом конце страницы.
Может в head скрипт вставить?

Добавлено (15.06.2015, 14:43)
---------------------------------------------
В head функция не работает(

 
Дата: Понедельник, 15.06.2015, 16:46 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


legolas,
Цитата legolas, Пн, 15.06.2015, 14:43:48
Так я им и воспользовался но тег script внутри скрипта не работает

А где в моем коде тег script ?

Цитата legolas, Пн, 15.06.2015, 14:43:48
В head функция не работает(

Вот так:
Код
(function(){
var DIRECTOR='<option value="0">FAMILY</option>';
DIRECTOR+='<option value="Arial">Arial</option>';
DIRECTOR+='<option value="Times">Times</option>';
DIRECTOR+='<option value="Courier">Courier</option>';

var s=$('#addEntForm .manFlOth4'),l=s.val();       
s.replaceWith('<input type="hidden" id="bdF16" class="manFlOth4" name="other4"><select id="bdrd" multiple>'+DIRECTOR+'</select>');       
$('#addEntForm .manFlOth4').val(l);       
})();


вместо вот этого:
Код
(function(){      
var e=$('#addEntForm .manFlOth3'),v=e.val();      
e.replaceWith('<input type="text" id="bdF15" class="manFlOth3" style="width:100%" name="other3"><br><select id="bdbd" multiple><script src="/js/actors.js"><\/script></select>');      
$('#addEntForm .manFlOth3').val(v);      
})();

- только имена полей подправьте


 
Дата: Понедельник, 15.06.2015, 18:16 |
legolas
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Но думал так сделать ведь у меня во всех страницах отлично работает
Код
<input type="hidden" id="bdF16" class="manFlOth4" name="other4"><select id="bdrd" multiple><script src="/js/actors.js"></script></select>


а в нем и еще в одном файле
Код
document.write('а тут около 1000 option');


накладно все переделывать, но если больше ничего не поможет, как на других страницах выводить?
Код
document.write('<input type="hidden" id="bdF16" class="manFlOth4" name="other4"><select id="bdrd" multiple>'+DIRECTOR+'</select>');


 
Дата: Понедельник, 15.06.2015, 18:57 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


legolas,
Цитата legolas, Пн, 15.06.2015, 18:16:42
Но думал так сделать

Так никто не делает.

Цитата legolas, Пн, 15.06.2015, 18:16:42
накладно все переделывать, но если больше ничего не поможет, как на других страницах выводить?

На каких “других”? Этот код нужен только для страницы добавления/редактирования..

Или что вы хотите?
Поясните по-человечески, а не обрывками..

Цитата legolas, Пн, 15.06.2015, 18:16:42
как на других страницах выводить?

Да, именно так, если есть доступ к исходному коду шаблона.

Вывести переменную можно множеством способов, включая то, что вы указали - через document.write
Какой из них выбрать - зависит от конкретной ситуации. Бывают такие, где document.write ну никак не подходит - например динамическое добавление, тогда можно воспользоваться .innerHTML ... или .appendChild или еще как-нибудь..


 
Дата: Понедельник, 15.06.2015, 22:00 |
legolas
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Код
<script src="/js/actors.js"></script>


в этом файле у меня код, потому что не влазит в глобальный блок,
а код такой:

Код
document.write('<option value="0">FAMILY</option><option value="Arial">Arial</option><option value="Times">Times</option><option value="Courier">Courier</option> и так далее.........')


Цитата
На каких “других”? Этот код нужен только для страницы добавления/редактирования..


На всех страницах у меня поиск по значениям option:value

Код
<div class="col-md-3">
<div class="service-item">
<select size="1" name="q" class="mainBtn2" style="font-weight:bold" onchange="window.location.href='/search/'+this.options[this.selectedIndex].value">
<script src="/js/actors.js"></script>
</select>
</form>
</div>
</div>


А на странице добавления выбор из option в поле.


 
Дата: Понедельник, 15.06.2015, 22:29 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


legolas, вы помните с чего начиналась тема?
Вы спросили как сделать оптионы не в строку а в столбик.
Цитата legolas, Чт, 11.06.2015, 23:46:00
Как сделать чтобы option в столбец и скрипт работал.

Ответ:
Созать переменную и добавить в нее все оптионы, каждый с новой строки, вот так:
Код
var DIRECTOR='';
DIRECTOR+='<option value="Arial">Arial</option>';
DIRECTOR+='<option value="Times">Times</option>';
DIRECTOR+='<option value="Courier">Courier</option>';

Где:
DIRECTOR - переменная (имя переменной);
DIRECTOR+='<option value="Arial">Arial</option>'; - добавляем в конец переменной строку;
---

Обращаться к переменной нужно по имени, которое == DIRECTOR, соответственно, что бы вывести ее, нужно изменить скрипт так:
Код
var s=$('#addEntForm .manFlOth4'),l=s.val();          
s.replaceWith('<input type="hidden" id="bdF16" class="manFlOth4" name="other4"><select id="bdrd" multiple>'+DIRECTOR+'</select>');          
$('#addEntForm .manFlOth4').val(l);

Где:
DIRECTOR - имя подключенной переменной.
---

Из всего этого следует, что для того, что бы вывести переменную в любой странице нужно подключить ее, в данном случае, так как она находится во внешнем JS-файле, подключить его, и обратиться по имени.

Цитата legolas, Пн, 15.06.2015, 22:00:01
На всех страницах у меня поиск по значениям option:value
Код
<div class="col-md-3">
<div class="service-item">
<select size="1" name="q" class="mainBtn2" style="font-weight:bold" onchange="window.location.href='/search/'+this.options[this.selectedIndex].value">
<script src="/js/actors.js"></script>
</select>

Так тоже никто не делает.
Либо добавляют код через innerHTML либо пихают целиком select, либо поштучно оптионы.

Добавить код через innerHTTL:
Код
<div class="service-item">    
<select size="1" name="q" class="mainBtn2" id="mainBtnQ" style="font-weight:bold" onchange="window.location.href='/search/'+this.options[this.selectedIndex].value"></select>
</div>
<script type="text/javascript" src="ссылка_на_файл_с_DIRECTOR"></script>
<script type="text/javascript">
document.getElementById('mainBtnQ').innerHTML=DIRECTOR;
</script>


Запихнуть целиком select:
Код
<div class="service-item">
<script type="text/javascript" src="ссылка_на_файл_с_DIRECTOR"></script>
<script type="text/javascript">
document.write('<select size="1" name="q" class="mainBtn2" style="font-weight:bold" onchange="window.location.href=\'/search/\'+this.options[this.selectedIndex].value">'+DIRECTOR+'</select>');
</script>
</div>


 
Дата: Вторник, 16.06.2015, 14:36 |
legolas
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Цитата
Так тоже никто не делает.
Либо добавляют код через innerHTML либо пихают целиком select, либо поштучно оптионы.

Добавить код через innerHTTL:
Код
<div class="service-item">
<select size="1" name="q" class="mainBtn2" id="mainBtnQ" style="font-weight:bold" onchange="window.location.href='/search/'+this.options[this.selectedIndex].value"></select>
</div>
<script type="text/javascript" src="ссылка_на_файл_с_DIRECTOR"></script>
<script type="text/javascript">
document.getElementById('mainBtnQ').innerHTML=DIRECTOR;
</script>

Запихнуть целиком select:
Код
<div class="service-item">
<script type="text/javascript" src="ссылка_на_файл_с_DIRECTOR"></script>
<script type="text/javascript">
document.write('<select size="1" name="q" class="mainBtn2" style="font-weight:bold" onchange="window.location.href=\'/search/\'+this.options[this.selectedIndex].value">'+DIRECTOR+'</select>');
</script>
</div>

Я понял. Буду переписывать. Потом отпишусь.

Добавлено (16.06.2015, 14:29)
---------------------------------------------
Привет, все сделал все работает, спасибошки.
Еще пару вопросов возникло, при редактировании выбранные значения показанны в поле, но ониже не нажаты в чекбоксе, поэтому значения слетают. Как сделать, чтобы при редактировании значения из поля обратно выбиралось в чекбоксе?

Добавлено (16.06.2015, 14:36)
---------------------------------------------

Цитата
А при редактировании, наоборот:
Код
<script type="text/javascript">
$(document).ready(function(){
var s='';
$('#bdF14,#bdF15,#bdF16,#bdF17').each(function(){
s+=this.value+',';
});
$('#addEntForm div.filterBlock input').each(function(){
if(s.indexOf($(this).next().html())!=-1)
this.checked=true;
});
});
</script>


Нужно както с моим кодом совместить.


 
Дата: Вторник, 16.06.2015, 18:28 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


legolas,
Цитата legolas, Вт, 16.06.2015, 14:36:50
Как сделать, чтобы при редактировании значения из поля обратно выбиралось в чекбоксе?

Пробежаться циклом по значениям в поле, и отметить чекбоксы с данными значениями.
Как-то так..


 
Дата: Вторник, 16.06.2015, 23:48 |
legolas
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


<?if($PAGE_ID$='add')?>
<script type="text/javascript">
$(document).ready(function(){
var s='';
Цитата
Пробежаться циклом по значениям в поле, и отметить чекбоксы с данными значениями.
Как-то так..


Так сработало:
Код
<?if($PAGE_ID$='add')?>     
<script type="text/javascript">  
$(document).ready(function(){  
var s='';  
$('#bdF15').each(function(){  
s+=this.value+',';  
});  
$('#addEntForm #bdM42 input').each(function(){  
if(s.indexOf($(this).next().html())!=-1)  
this.checked=true;  
});  
});  
</script>  
<?endif?>


Спасибо!

Добавлено (16.06.2015, 22:49)
---------------------------------------------
А вот такая идея.
Можно ли так сделать, если результат поиска совпал с названием материала, то открывается не страница поиска, а страница этого материала, если нет то страница поиска?

Добавлено (16.06.2015, 23:48)
---------------------------------------------
Да и как рейтинг загетить в результаты поиска?

 
Дата: Среда, 17.06.2015, 00:47 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


legolas,
Цитата legolas, Вт, 16.06.2015, 23:48:47
Можно ли так сделать, если результат поиска совпал с названием материала, то открывается не страница поиска, а страница этого материала, если нет то страница поиска?

Теоретически, да.
- проверить названия материалов на совпадение с запросом и если есть - перейти по ссылке из этого названия.
А если таких совпадений более одного?

Цитата legolas, Вт, 16.06.2015, 23:48:47
Да и как рейтинг загетить в результаты поиска?

Подкорректировать функцию рейтинга и продублировать в шаблон поисковой выдачи.
--


 
Дата: Среда, 17.06.2015, 11:33 |
legolas
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Вот помоги доделать
Код

$('.form-control1').keyup(function(){ var likeThis = [], zapros = $(this).val(), vivod=''; if(zapros.length >= 3){
$.get("/search/", {q: zapros}, function(otvet){  
$('.title', otvet).each(function(){
  val = $(this).html(); likeThis.push(val);
  });  


.form-control -класс формы поиска
.title-класс названия материала


 
Дата: Среда, 17.06.2015, 15:22 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9096
Награды: 23
Репутация: 457
Статус: Unknown


legolas,
Цитата legolas, Ср, 17.06.2015, 11:33:45
$('.title', otvet).each(function(){
val = $(this).html(); likeThis.push(val);
});

Код
val = $(this).html();
if(val == zapros){
   window.location.href=this.hrf;
};

Только не уверен, что будет совпадение - проверять нужно, возможно, запрос кодируется в URIComponent
Так же, по-моему, на юкозе подсветка результатов поиска - следовательно, $(this).html() не будет равен запросу - будут присутствовать лишние теги..
Но идею вы поняли - развивайте


 
Дата: Понедельник, 22.06.2015, 22:06 |
legolas
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Привет. Не смог создать тему. Есть вопрос.
Как сделать, чтобы содержимое блока открывалось после исполнения скрипта?
Сперва показывает категории в столбец, потом выполняется реплейс всех <tr></tr> и они становятся в строчку, очень некрасиво выходит.


 
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Как сделать... Тема только по сайтам в системе uCoz » Cкрипт подгрузки кода из другого файла? JavaScript (Сделать option в столбец и скрипт работал)
Страница 1 из 212»
Поиск: