Функции для записи, чтения, очистки cookies:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
подробнее: http://www.quirksmode.org/js/cookies.html
Понадобилось для выделения активного элемента навигации по странице.
Скрипт в заголовке страницы (суть работы в том что по клику по ссылке активному элементу дописываем class active
):
<script type="text/javascript">
function RPClass(el) {
var nav=document.getElementById('nav');
var links=nav.getElementsByTagName('li');
for (var i=0;i<links.length;i++) {
var li=links[i];
li.className='';
}
el.className = 'active';
}
</script>
Собственно список:
<ul id='nav'>
<li onclick='RPClass(this);'><a href='#1'>1</a></li>
<li onclick='RPClass(this);'><a href='#2'>2</a></li>
<li onclick='RPClass(this);'><a href='#3'>3</a></li>
<li onclick='RPClass(this);'><a href='#4'>4</a></li>
<li onclick='RPClass(this);'><a href='#5'>5</a></li>
</ul>
Пример CSS для горизонтального меню с выделением активного элемента рамкой и фоном:
#nav {
list-style:none;
}
#nav li {
float:left;
padding:10px;
border:1px solid #ffffff;
margin-right:4px;
}
#nav li:hover, #nav li.active{
border:1px solid #505050;
background:#dddddd;
}
#nav li a {
color:#505050;
text-decoration:none;
}
В раздел инициализации tinymce добавить:
extended_valid_elements:"iframe[src|width|height|name|align]",
Для перехода по ссылке не в iframe а на родительскую страницу:
onclick='parent.$.colorbox.close();window.parent.location.href="/contacts/";'
function fix_flash() {
var embeds = document.getElementsByTagName('embed');
for(i=0; i<embeds.length; i++) {
embed = embeds[i];
var new_embed;
if(embed.outerHTML) {
var html = embed.outerHTML;
if(html.match(/wmode\s*=\s*('|")[a-zA-Z]+('|")/i))
new_embed = html.replace(/wmode\s*=\s*('|")window('|")/i,"wmode='transparent'");
else
new_embed = html.replace(/<embed\s/i,"<embed wmode='transparent' ");
embed.insertAdjacentHTML('beforeBegin',new_embed);
embed.parentNode.removeChild(embed);
} else {
new_embed = embed.cloneNode(true);
if(!new_embed.getAttribute('wmode') || new_embed.getAttribute('wmode').toLowerCase()=='window')
new_embed.setAttribute('wmode','transparent');
embed.parentNode.replaceChild(new_embed,embed);
}
}
var objects = document.getElementsByTagName('object');
for(i=0; i<objects.length; i++) {
object = objects[i];
var new_object;
if(object.outerHTML) {
var html = object.outerHTML;
if(html.match(/<param\s+name\s*=\s*('|")wmode('|")\s+value\s*=\s*('|")[a-zA-Z]+('|")\s*\/?\>/i))
new_object = html.replace(/<param\s+name\s*=\s*('|")wmode('|")\s+value\s*=\s*('|")window('|")\s*\/?\>/i,"<param name='wmode' value='transparent' />");
else
new_object = html.replace(/<\/object\>/i,"<param name='wmode' value='transparent' />\n</object>");
var children = object.childNodes;
for(j=0; j<children.length; j++) {
if(children[j].getAttribute('name').match(/flashvars/i)) {
new_object = new_object.replace(/<param\s+name\s*=\s*('|")flashvars('|")\s+value\s*=\s*('|")[^'"]*('|")\s*\/?\>/i,"<param name='flashvars' value='"+children[j].getAttribute('value')+"' />");
}
}
object.insertAdjacentHTML('beforeBegin',new_object);
object.parentNode.removeChild(object);
}
}
}
$(document).ready(function () {
fix_flash();
});
http://www.developersnippets.com/2010/12/04/how-to-add-wmodetransparent-for-flash-object-using-jquery-and-native-javascript/
http://www.onlineaspect.com/2009/08/13/javascript_to_fix_wmode_parameters/