ajax calendar(PHP+JAVASCRIPT)

Click here to see the calendar

Result:

AJAX:

ajax.js

function HttpRequest(method,url){
this.method = method;
this.url = url;
this.init = CreateXMLHTTPObject;
this.self_url = self.location.href;
this.func = function () {};

this.go=function go(str_url){
self.location.href=str_url;
}

function CreateXMLHTTPObject(){
var xObject = null;
try {
xObject = new ActiveXObject(“Msxml2.xmlhttp.4.0″);
}
catch (e){
try{
xObject = new XMLHttpRequest();
if(xObject.overrideMimeType){
xObject.overrideMimeType(‘text/xml’);
}

}
catch (e){
try {
xObject = new ActiveXObject(“Msxml2.xmlhttp”);
}
catch (e) {
try {
xObject = new ActiveXObject(“Microsoft.xmlhttp”);
}
catch (e) {
alert(“Error: Unable to create XML HTTP object!”);
}
}
}
}
return xObject;
}

this.post = dopost;

function dopost(obj,func,param)
{
//alert(func);
//this.func = func;
obj.onreadystatechange = func;
obj.open(this.method, this.url, true);
obj.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded;charset=utf-8″);
obj.send(param);
}

this.utf16to8 = utf16to8;
function utf16to8(str) {
if(str==”){
return ”;
}
var out, i, len, c;

out = “”;
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0×0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0×80 | ((c >>  6) & 0x3F));
out += String.fromCharCode(0×80 | ((c >>  0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));
out += String.fromCharCode(0×80 | ((c >>  0) & 0x3F));
}
}
return out;
}

this.$ = $;
function $(id){
return document.getElementById(id);
}

this.tagNameParam = tagNameParam
function tagNameParam(name,obj){
var objs = obj.getElementsByTagName(name);
var param = ”;
for (i=0;i<objs.length;i++){
param = param + objs.name+”=”+escape(utf16to8(Trim(objs.value)))+”&”;
}
return param;
}

this.form2param = form2param
function form2param( objs, ignore ) {
/**                     //getElementsByClass(‘test’)
* 调用方法: form2param(document.getElementsByTagName(‘*’), Array(‘submit’));
* param1: 一般不需要修改
* param2: 需要忽略的表单域名称
* retrun: 字符串
*/
var param = “”;

function add2param( str_param, tagName, value ) {
var param
if (str_param.length==0) {
return tagName+”=”+escape(utf16to8(value));
}
else {
return str_param+’&’+tagName+”=”+escape(utf16to8(value));
}
}

function arrayToObject(arr) {
var obj=new Object();
for (i=0; i<arr.length; i++) {
obj[arr[i]]=null;
}
return obj;
}

var tagnames = new Array(“input”, “textarea”, “select”);
var chkboxs = new Array(“checkbox”, “radio”);
var obj_tagnames = arrayToObject(tagnames);
var obj_ignore = arrayToObject(ignore);
var obj_chkboxs = arrayToObject(chkboxs);

for (var i=0; i<objs.length; i++) {
if (objs[i].tagName.toLowerCase() in obj_tagnames) {
if ( (!(objs[i].name.toLowerCase() in obj_ignore)) && ( objs[i].name.indexOf(‘save_’)==-1 ) ){
if (objs[i].type.toLowerCase() in obj_chkboxs) {
if (objs[i].checked) {
param = add2param(param, objs[i].name.toLowerCase(), objs[i].value);
}
}
else {
param = add2param(param, objs[i].name.toLowerCase(), objs[i].value);
}
}
}
}

return param;
}

this.checkboxToArray = function (form,tag){
var objs = form.getElementsByTagName(tag);
var param = null;
for (i=0;i<objs.length;i++ )
{
if(objs[i].type==”checkbox” && objs[i].checked){
param+=objs[i].name+”=”+escape(utf16to8(objs[i].value));
}
}
return param;
}

this.load = function( url ){
var ss = document.getElementsByTagName(“script”);
for( i=0;i<ss.length;i++ ){
if( ss[i].src && ss[i].src.indexOf( url ) != -1 ){
this.onsuccess();
return;
}
}
s = document.createElement(“script”);
s.type = “text/javascript”;
s.src = url;
var head = document.getElementsByTagName(“head”)[0];
head.appendChild(s);
var self = this;

s.onload = s.onreadystatechange = function(){
if( this.readyState && this.readyState == “loading” )
return;
self.onsuccess();
}
s.onerror = function(){
head.removeChild(s);
self.onfailure;
}
};

this.onsuccess = function(){};
this.onfailure = function(){};

//去掉字符串 的左边 空格
this.LTrim = LTrim ;
function LTrim(str){
var i;
for(i=0;i<str.length;i++)  {
if( str.charAt(i)!=” ” && str.charAt(i)!=null )
break;
}
str = str.substring(i,str.length);
return str;
};
//去掉字符串 的右边 空格
this.RTrim = RTrim ;
function RTrim(str){
var i;
for( i=str.length-1;i>=0;i– ){
if( str.charAt(i)!=” “&&str.charAt(i)!=null )
break;
}
str = str.substring(0,i+1);
return str;
};
//去掉字符串 的 左右边 空格
this.Trim = Trim ;
function Trim(str){
var trimRe = /^\s+|\s+$/g;
str = String(str).replace(trimRe,”");
return LTrim(RTrim(str));
};

//去掉字符串 的 左右边 空格
this.strReplace = strReplace ;
function strReplace( string ){
string = String.replace(/(^\s*)|(\s*$)/g,”");
return string ;
};

}

int_step = 0;

function show_loading() {
div_hint = document.getElementById(‘hint’);
if (!div_hint) {
var hint_text = “正在处理您的请求…”
div_hint = document.createElement(“div”);
div_hint.id = “hint”;
var div_hint_image = document.createElement(“div”);
div_hint_image.id = “hint_image”;
div_hint.appendChild(div_hint_image);
var img_loading = document.createElement(“img”);
img_loading.src = “/images/animated_loading.gif”;
img_loading.alt = hint_text;
div_hint_image.appendChild(img_loading);
var div_hint_text = document.createElement(“div”);
div_hint_text.id = “hint_text”;
div_hint.appendChild(div_hint_text);
var text_loading = document.createElement(“strong”);
text_loading.innerHTML = hint_text;
div_hint_text.appendChild(text_loading);
document.body.appendChild(div_hint);
}
else {
div_hint.style.display = “”;
}
}

function hide_loading() {
div_hint.style.display = “none”;
}

——————————————————————————–

(more…)

Share
Posted in JAVA SCRIPT, 网站. Tags: , , , . »

how to edit pages in browser

document.body content Editable=‘true’;
document.design Mode=‘on’;
void 0”,

Share
Posted in JAVA SCRIPT. Tags: , , . »

JavaScript alert

function DialogV(){
this.text = “<style type=’text/css’>#dig{position:absolute; left:182px;top:36px; width:400px; height:300px; z-index:9999; padding-left:20px;padding-top:20px; background-color:#99CCFF;display:none;}#Screen {position:absolute;z-index: 9998;top: 0px;left: 0px;background: #000000;display: none;filter: alpha(Opacity=30);-moz-opacity:0.30; }#msg{width:380px;height:200px;padding-top:10px;}#btn{height:30px;width:380px;padding-top:0px}</style><div id=’Screen’></div><div id=’dig’><div align=’center’ id=’msg’></div>  <div id=’btn’ align=’center’><input type=’button’ id=’dialog_btn’ onclick=’dialog.close()’ value=’Ok’/></div></div>”
this.alert = showScreenMsg;
this.close = closeScreen;
this.msg = setMsg;
this.setClick = enablebtn;
this.cantclick = disablebtn;
this.create = function(){
document.write(this.text);
}

function setMsg(msg){
document.getElementById(‘msg’).innerHTML=msg;
}

function disablebtn(){
document.getElementById(‘dialog_btn’).disabled=true;
}

function enablebtn(){
document.getElementById(‘dialog_btn’).disabled=false;
}

function getWidth(){
var strWidth,clientWidth,bodyWidth;
clientWidth = document.documentElement.clientWidth;
bodyWidth = document.body.clientWidth;
if(bodyWidth > clientWidth){
strWidth = bodyWidth + 20;
} else {
strWidth = clientWidth;
}
return strWidth;
}

function getHeight()
{
var strHeight,clientHeight,bodyHeight;
clientHeight = document.documentElement.clientHeight;
bodyHeight = document.body.clientHeight;
if(bodyHeight > clientHeight){
strHeight = bodyHeight + 30;
} else {
strHeight = clientHeight;
}
return strHeight+1000;
}
function showScreenMsg(msg)
{
var Msg = document.getElementById(‘dig’);
var Bg = document.getElementById(‘Screen’);
Bg.style.width = getWidth()+’px’;
Bg.style.height = getHeight()+’px’;
document.getElementById(‘dig’).style.left=(document.body.clientWidth/2)-200+”px”; // alert(screen.height/2-240);
document.getElementById(‘dig’).style.top=screen.height/2-240+”px”;
document.body.scroll=”no”;
document.getElementById(‘msg’).innerHTML=msg;
Bg.style.display = ‘block’;
Msg.style.display = ‘block’;
}

//popup
function showScreen()
{
var Msg = document.getElementById(‘dig’);
var Bg = document.getElementById(‘Screen’);
Bg.style.width = getWidth()+’px’;
Bg.style.height = getHeight()+’px’;
document.getElementById(‘dig’).style.left=(document.body.clientWidth/2)-200+”px”; // alert(screen.height/2-240);
document.getElementById(‘dig’).style.top=screen.height/2-240+”px”;
document.body.scroll=”no”;
Bg.style.display = ‘block’;
Msg.style.display = ‘block’;
}

function closeScreen(){
var Msg = document.getElementById(‘dig’);
var Bg = document.getElementById(‘Screen’);
Bg.style.display = ‘none’;
Msg.style.display = ‘none’;
document.body.scroll=”yes”;
}

}

var dialog = new DialogV();
dialog.create();

Share
Posted in JAVA SCRIPT. Tags: , . »

FCKeditor,API,javascript,文本,值,内容

FCKeditor是一个不错的可以嵌入在网页中的文本编辑器组件,兼容IE,FIREFOX,目前也只有Opear
上海无法使用
FCKeditor的嵌入在页面中的API
获取FCKeditor的实例
var oEditor = FCKeditorAPI.GetInstance('InstanceName') ;
获取FCKeditor的编辑窗口中的内容
oEditor.GetXHTML();
返回的数据就是FCKeditor的值
FCKeditor的事件
function FCKeditor_OnComplete( editorInstance )
{
    alert( editorInstance.Name ) ;
}
系统会自动调用所定义的函数
fckeditor的事件类型
OnSelectionChange:OnAfterSetHTML: OnStatusChange:OnPaste:

完整API请参照

http://wiki.fckeditor.net/Developer%27s_Guide/Javascript_API

http://g.msn.com/0SEP/zhcnrs?name=http%3A//wiki.fckeditor.net/Developer%2527s_Guide/Javascript_API

Share
Posted in JAVA SCRIPT. »

Ajax,javascript,utf8中文乱码解决简易方法


此方法,适用于 Utf编码的网页
在Utf8编码的网页上,双字节文字其实是使用UTF16编码 来表现的,当通过模拟表单的方式提交到后台的时候,因为UTF16不是标准的编码方式,所以一些程序无法识别!
解决方法:将utf16转换为utf8,然后使用escape编码,就 不会有这个问题了
解决方案代码如下:
function utf16to8(str) {
var out, i, len, c;
out = “”;
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0×0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0×80 | ((c >>  6) & 0x3F));
out += String.fromCharCode(0×80 | ((c >>  0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));
out += String.fromCharCode(0×80 | ((c >>  0) & 0x3F));
}
}
return out;
}
function utf8to16(str) {
var out, i, len, c;
var char2, char3;
out = “”;
len = str.length;
i = 0;
while(i < len) {
c = str.charCodeAt(i++);
switch(c >> 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx   10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
// 1110 xxxx  10xx xxxx  10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}
return out;
}

Share
Posted in JAVA SCRIPT. Tags: , , , . »