Динамическая загрузка скриптов на JavaScript

В том случае если необходимо динамически подгрузить на страницу какие-то скрипты, возможно использовать например прообраз следующего кода:

window.onload=function(){
    if (typeof jQuery == 'undefined') {    
	dhtmlLoadScript("https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
    };
	//проверяем, а подгрузился ли juery?
	var timerId = setInterval(function() {
	    if (typeof jQuery == 'undefined'){
		console.log("--еще не догрузился jquery..ждем..");
	    } else {
		dhtmlLoadScript("http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js");		
		console.log("--вроде jquery загрузился, гружу jquery-ui..");		
		clearInterval(timerId);
		var timerId2 = setInterval(function() {		
		    if (typeof $.ui == 'undefined'){
			console.log("--еще не догрузился jquery-ui..ждем..");
		    } else {
			clearInterval(timerId2);
			console.log("--вроде jquery-ui загрузился, инициализирую чат..");					
			mainchat();
		    };		    
		},1000);		
	    };	    
	}, 1000);	
	
};
function dhtmlLoadScript(url){
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e); 
}

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

10 лет Яртелесервису

Довелось побывать на «корпоративе» — 10 лет Яртелесервису. Мероприятие происходило в Углическом районе,Ярославской области. Утром — сплав на байдарках. Потом пейнтбол, волебол, баня, песни у костра до утра. Палатки, комары. В общем романтека. Очень понравилось. Давно так не расслаблялся и не отдыхал.

Python нормализация даты полученной из MySQL

Формат даты MySQL и Python несколько отличаются, поэтому не получится результат запроса — дату, использовать сразу. Нужно предварительно её отформатировать при помощи функции strptime(дата, формат). Вот пример кода:

        sql="select count(*) as cnt,(now()-interval %s day) as ddy  from payments where mod_person=%s and year(pay_date)=year(now()-interval %s day) and month(pay_date)=month(now()-interval %s day) and day(pay_date)=day(now()-interval %s day)";
        cursor2=connb.cursor(dictionary=True,buffered=True)
	cursor2.execute(sql,[days,person_id,days,days,days]);
	myrow3 = cursor2.fetchone()	
	while myrow3 is not None:    
	    cnt=myrow3["cnt"];   
            ddy=myrow3["ddy"];   	    
	    ddt=datetime.datetime.strptime(str(ddy),"%Y-%m-%d %H:%M:%S")
	    wd=datetime.datetime.weekday(ddt);    
	    if wd==0:dn="Понедельник";
	    if wd==1:dn="Вторник";
	    if wd==2:dn="Среда";
	    if wd==3:dn="Четверг";
	    if wd==4:dn="Пятница";
	    if wd==5:dn="Суббота";
	    if wd==6:dn="Воскресенье";
	    #Если платежей нет в выходные, тогда АХТУНГ!!
            if ((cnt==0) and (wd!=5) and (wd!=6)):
               func.putlog (str(email.encode('utf-8'))+" Внимание! В биллинге нет платежей за "+str(ddy)+" ("+str(wd)+") от "+str(name.encode('utf-8'))+"!!")
	       func.AddMailQwery(noc,'цувцу@цувцув.ru',email,"Внимание! В биллинге нет платежей за "+str(ddy)+" ("+str(wd)+") от "+str(name.encode('utf-8'))+"!!","Внимание! В биллинге нет платежей за "+str(ddy)+" ("+str(wd)+") от "+str(name.encode('utf-8'))+"!!");
                   #SendMailAttachment($email,$cfg->smtpusername,"Внимание! В биллинге нет платежей за $ddy ($dn) от $name!!!","Внимание! В биллинге нет платежей за $ddy ($dn) от $name!!!");                                                             
	    myrow3 = cursor2.fetchone()

Как вставить код на JavaScript между тегами

Для того чтобы показать на странице отформатированный javascript код, нужно воспользоваться следующей уловкой: заменить знаки < и > соотвествующими кодами: &lt; и &gt; . В оезультате вставка должна получиться примерно такой:

<pre>
   &lt;script&gt;
   (function(){	
	var hcc = document.createElement("script");
	hcc.type ="text/javascript";
	hcc.async =true;
	hcc.src ="http://сайт_чат_сервера/chat_client/chat_client.js";
	var s = document.getElementsByTagName("script")[0];
	s.parentNode.insertBefore(hcc, s.nextSibling);
   })();   
   &lt;/script&gt;
</pre>

Добавление текста в буфер обмена на JavaScript

Необходимо скопировать в буфер обмена некий текст. Задача осложнаяется тем, что браузеры позволяют скопировать в буфер, в целях безопасности только программно выделенный текст. Т.е. не получится скопировать в буфер любой текст, а возможно только тот, который находится в тегах типа input, textarea и т.п.

Решение:

Работать будет только в сборках браузеров старше 2015года!

  1. Выводим на странице скрытый текстовый блок
    <textarea style="display:none;" id="url_to_copy"></textarea>
  2. По нажатию кнопки «Скопировать», показываем этот блок. К сожалению иначе выделение не работает, приходится показывать.
  3. Заносим в этот блок текст необходимый для копирования в буфер
  4. Программно выделяем текст
  5. Убираем с глаз долой этот текстовый блок.

Как показывает практика при умелом «прятаньи» этого блока в тексте страницы, пользователь ничего не замечает.

Пример кода:

           
$("#url_to_copy" ).show();
url="https://nocfcefertelesererfe.ru/index.php?content_page=lanbilling/sos&billing_id="+$("#blibase").val()+"&agrm_id="+id;            
$("#url_to_copy").val(url);           
url_to_copy.select();
document.execCommand("copy");
$("#url_to_copy").attr("display:none");

Жизнь замечательных грибов