検索
ホームページウェブフロントエンドjsチュートリアルJavaScript フレームワークの概要 個人的な職歴_JavaScript スキル

/*************************************************** * ************************************* 著者: Xiao Feng
QQ:77182997
MSN :xiaofengnet@hotmail.com
電子メール:xiaofengnet@163.com
Web サイト: http://www.d369.net
著作権を保持し、ご協力に感謝します
バージョン: V 1.6.1
/****************************************** *********** ************************************** *
/*
は XiaoFeng です。System メソッド Scroll を追加します [2009-02-18] V 1.4.1
メソッド Index to Array を追加します [2009-04-09] V 1.4.2
String ,EndsWith 関数に TrimStart, TrimEnd, Trim, StartsWith を追加 [2009-04-09] V 1.4.3
保持される小数点以下の桁数を実現するために Number に toFixed メソッドを追加 [2009-04-17] V 1.4 .4
ファイルの名前とファイルを取得するための FileType サフィックス名 [2009-04-20] V 1.4.5
XiaoFeng.Dialog は選択ウィンドウと保存ウィンドウを開きます [2009-05-28] V 1.4.6
Object クラスを通じてメソッド getType を各オブジェクトに追加します。 オブジェクトの親ノードを取得します。 getParent[2009-06-04] V 1.4.7
メソッド getQuery(s) を更新します。 U のデフォルトは現在のアドレスバーのアドレス、s は抽出するために渡されるパラメータ getQuery(U,s) U 渡されたアドレス s と抽出される渡されたパラメータの場合 [2009-06-08] V 1.4.8
追加String wTh 全角から半角への変換と hTw 半角から全角への変換の 2 つのメソッド [2009-06-08 ] V 1.4.8
メソッド ajax.Fun = function(){} を変更しました。処理中の ajax クラスと、サーバー ハンドラーにエラーがあるかどうかを判断する属性 ajax.Error [2009-06-09] V 1.4.9
String、Array、Object、および Element のメソッドを書き換えました [ 2009-06-12] V 1.5.0
キャプチャ イベント ソース getElement XiaoFeng.getElement を追加 [2009-06 -12] V 1.5.1
FF IE LoadXml() と互換性があるようにローディング XML 関数を更新[2009-06-12] V 1.5.2
無制限ドロップダウン リスト SelectClass の機能を追加 [2009-06-13] V 1.6.0
無限ドロップダウン リストの選択時を更新空の場合、選択された値は前のレベルのドロップダウン リストの値です [2009-06-13] V 1.6.1
*/
/*==================================== === ============================================== === =
フレームワークのコアコンテンツ--------[基本ツールクラス]
====================== ====== =========================================== ====== ===========
*/
if(!window.XiaoFeng || !XiaoFeng || typeof XiaoFeng == "未定義")var XiaoFeng = ウィンドウ。 XiaoFeng = new Object() ;
var Prototype = {
バージョン: "1.4.9",
ScriptFragment: '(?:)((n|r|.)*?)(?:)',
emptyFunction: function(){} ,
K: function(e){return e}
}
/*=========================== ======= ========================================== ======= =====
【オブジェクトクラスに静的メソッドを追加】
[2008-08-13]作成
オブジェクトクラスに静的メソッドを追加: extend
* /
Object.extend = function(destination,source){
for(source のプロパティ)destination[property] = source[property];
return destination;
}
//追加オブジェクト クラス メソッドを介して各オブジェクトに対して extend
Object.prototype.extend = function(object){return Object.extend.apply(this,[this,object]);}
/*===== ======= ========================================== ======= =============================
[配列に属性を追加]
[ 2009 年 6 月 12 日に作成]
配列に属性を追加します
*/
Object.extend(Array.prototype,{
remove : function(N){//指定された要素を削除します
if(isNaN(N )||N>this.length)return false;
for(var i=0,n=0;ithis.length -= 1;
},
add : function(v){//
for(var i=0; iif(this[i].toString() == v.toString()) Break;
this.push(v); : function(s){// 配列内の要素のインデックスを指定します。
var FlagIndex = -1;
for(var i = 0;i if(this [i].toString() == s.toString()){FlagIndex = i; ブレーク;}
return FlagIndex; first : function(){return this[0];} ,//配列の最初の要素
last : function(){return this[this.length - 1];},//配列の最後の要素
clear : function(){this.length = 0; これを返します;}//配列要素をクリアします
}); ============== =================================== ============== ====
[文字列に属性を追加]
[2009-06-12 作成]
文字列に属性を追加
*/
Object.extend(String.prototype ,{
len : function(){return this.replace(/[^x00-xff]/g,"ya").length;},//文字列の長さ、漢字 1 文字は 2 文字です。
Length : function(){
var M = 0;
for(var i=0;iif (this.charCodeAt(i) > 255)
else
M = M 1;
return },
Trim : function(s){return this.TrimStart(s).TrimEnd(s);},//先頭と末尾の指定文字をクリア
TrimStart: function(s){//先頭の指定文字をクリア
if(!s)s = "\s ";
varrimStartStr = new RegExp("^(" s ") ","g");
return this.replace(trimStartStr,"" );
},
TrimEnd : function(s){ //末尾の指定文字をクリア
if (!s)s = "\s "; var trimEndStr = new RegExp( "(" s ") $","g");
この .replace(trimEndStr,"");,
StartsWith : function(s){
if (!s)s = "\s";
varstartsWithStr = new RegExp("^(" s ")","g");
returnstartsWithStr.test(this);
},
EndsWith : function(s){
if (!s)s = "\s";
var endWithStr = new RegExp("(" s ")$","g");
return opensWithStr.test(this);
},
wTh : function(){//全角转换半角
var s = "";
for(var i = 0;i s = this.charCodeAt(i) >= 65248?String.fromCharCode(this.charCodeAt(i) - 65248):this.charAt (私);
s を返します。
},
hTw : function(){//半角转换全角
var s = "";
for(var i = 0;i s = this.charCodeAt(i) s を返します。
},
LeftStr : function(M){//左边指定长度文字
if(this.Length() > M){
var str = "";
for(var i=0;iif(this.charCodeAt(i) > 255)
M -= 2;
else
M -= 1;
str = this.substring(i,i 1);
if(M }
return str "...";
}else
これを返します;
},
stripTags : function(){return this.replace(/?[^>] >/gi, '');}
});
/*=========================================== ==============================================
【数字小数点後几位取得]
[创建2009-06-12]
は数字追加付加プロパティ
*/
Object.extend(Number.prototype,{
toFixed : function) (N){//格式化数字
if(arguments.length == 0)N = 2;
with(Math){var m = pow(10,Number(N));var s = ( Round(this*m)/m).toString();}
if(s.indexOf('.') s = "."
s = "0000000000000000000000";
}
return s.substr(0,s.indexOf('.') N 1);
}
});
/*=========================================== ===========================================
【获取一个指定ID のポイント]
は [2005-05-03]
document.getElementById(Id) で指定された ID のポイントを取得します。これは、この方法の高速な方法と展開で複数のメンバーを指定できる
数値は、1 つのオブジェクトの数値グループを返します。パラメーターは ID である必要はありませんが、オブジェクト自体への参照にすることもできます。たとえば、$("id") は $($("id"))
*/
var と同等です。 $ = XiaoFeng.$ = function( ){
var 要素 = new Array();
for(var i=0;ivar 要素 = argument[i] ;
if (typeof( element) == "string") element = document.getElementById?document.getElementById(element):document.all.element
if (arguments.length==1) return 要素
elements.push(要素) ;
}
要素を返す;
}
/*==================== ======== ========================================= ======== ========
[指定した ID のノードを取得]
[2005-05-03] に作成
document.getElementsByName(id) を取得指定された ID で設定された名前、はい このメソッドのショートカットと拡張機能では、複数のパラメーターを指定してオブジェクト配列を返すことができます
*/
var $N = XiaoFeng.$N = function(){
var elements = new Array();
for(var i=0;ivar element=arguments[i];
if (typeof(element) == "文字列" ) element = document.getElementsByName?document .getElementsByName(element):document.all.element;
if (arguments.length==1) return element;
🎜>戻り要素;
}
/*================================== ======== ========================================= ==
【TagNameを指定して1つのNodeを取得】
[2005-05-03]作成
document.getElementsByTagName(TagName)はTagNameを指定して名前セットを取得するこのメソッドのショートカット兼拡張です。複数のパラメータを指定して 1 つのオブジェクトを返すことができます array
*/
var $T = XiaoFeng.$T = function(){
var elements = new Array(); ;ivar element = argument[i];
if (typeof(element) == "string") element = document.getElementsByTagName(element); argument.length==1) 要素を返します。
elements.push(element); 要素を返します。
/*========= ======= ========================================== ======= ====================
【要素の作成】
作成日 [2008-06-18]
*/
var $ C = XiaoFeng.$C = function(){return document.createElement(arguments[0]);}
/*=============== ========= ======================================== ========= ===================
【配列変換】
[2008-08-13]作成
*/
var $A = XiaoFeng.$A = function(a){return a?Array.apply(null,a):new Array;}
/*========= ========== ======================================= ========== ======================
[キャッチイベントソース]
作成日 [2008-08-] 13]
*/
var getElement = XiaoFeng.getElement = function(){
if(arguments.length == 0)
return event.srcElement
else
return document; .all?arguments[0].srcElement :arguments[0].target;
}
/*======================= ========== ======================================= ========== =====
[オブジェクトクラスにイベント、アンロードイベント、マウス座標を追加]
[2008-10-09]作成
イベントを追加、イベントとマウス座標をオブジェクト クラスにアンロード:
*/
Object.extend(Object.prototype,{
addEvent : function(a, b, c, d){
//関数を追加
if(a.attachEvent)a.attachEvent (b[0], c);
else a.addEventListener(b[1] || b[0].replace(/^on/, "") , c, d || false);
return c;
},
delEvent : function(a, b, c, d){
if(a.detachEvent) [0], c);
else a .removeEventListener(b[1] || b[0].replace(/^on/, ""), c, d || false); ;
},
イベント : function (){//Get Event
return window.event ? window.event : (function (o){
do{
o = o.caller ;
} while (o && !/^ [object[A-Za-z]*Event]$/.test(o.arguments[0]));
return o.arguments[0]; 🎜>})(this.reEvent);
},
Scroll : function(){
return {
Left : document.body.scrollLeft == 0?document.documentElement.scrollLeft:document .body.scrollLeft,
トップ :document.body.scrollTop == 0?document.documentElement.scrollTop:document.body.scrollTop
}
}); ============ ===================================== ============ ==========================
[ブラウザとそのバージョンを判断する]
[2009-06-12 作成]
*/
XiaoFeng.userAgent = function(){
var ua = navigator.userAgent.toLowerCase();
if(window.ActiveXObject) )return {name : "IE",ver : ua .match(/msie ([d.] )/)[1]}
if(document.getBoxObjectFor)return {name : "Firefox",ver : ua.match(/msie ([d.] )/)[1]} match(/firefox/([d.] )/ )[1]}
if(window.MessageEvent && !document.getBoxObjectFor)return {name : "Chrome",ver : ua.match(/chrome/([ d.] )/)[1]}
if(window.opera)return {name : "Opera",ver : ua.match(/opera.([d.] )/)[1]}
if(window.openDatabase)return {name : " Safari",ver : ua.match(/version/([d.] )/)[1]}
return {name : "Other",ver : 0 }
}
/*== ===================================== ============ ====================================
[マウスの相対座標]
[2008-10-06作成]
*/
var Event = function(){
var e = Object.Event(); var o = {x : 0,y : 0};
switch(arguments[0]){
case 0:/*マウスの相対位置*/
o.x = e.clientX;
o.y = e.clientY;
ケース 1:/*マウスの絶対位置*/
o.x = e.clientX Object.Scroll().Left;
o.y = e.clientY Object.Scroll().Top; ;
default:/*マウスの相対位置*/
o.x = e.clientX;
break;
>}
/*========================================== ===== ===========================================
【Ajax作成クラス】
作成日[2008-05-30]
更新日[2009-06-09]
var ajax = new AjaxRequest()
ajax.Url = "Test .aspx";
ajax.Content = "";
ajax.Fun = function(){alert("Extracting..");}
ajax.CallBack = function(e){
// 操作コード
var XmlDoc=e.responseText;
var Roots=XmlDoc.documentElement.childNodes; .text);
}
*/
XiaoFeng.AjaxRequest(){
var xmlhttp = false; var self = this ;
this.Url = "";
this.Async = true; Fun = function( ){return;};
this.CallBack = function(obj){return;}
this.Error = null;
this.Create = function(){//Create XMLHttpRequest
if(typeof(window.XMLHttpRequest)!="未定義"){
xmlhttp = new XMLHttpRequest();
if(xmlhttp.overrideMimeType)xmlhttp.overrideMimeType("text/html"); }else if( window.ActiveXObject){
var Versions = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp "];
for(var i=0;itry{
var XmlHttp = new ActiveXObject(Versions[i]);
xmlhttp = XmlHttp;
}catch (Error){
if(i == (Versions.length-1))alert("エラー: サーバー オブジェクト インスタンスの作成に失敗しました。");//ブラウザの問題//エラーが発生します。説明
}
}
}
return xmlhttp;
}
this.Send = function(){
if(this.Url == ""){alert("処理アドレスを空にすることはできません!");}
xmlhttp = this.Create();
xmlhttp.open(this.Method,this.Url,true); if(this.Method == " post")xmlhttp .setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4){
if (xmlhttp.status == 200){
self.CallBack(xmlhttp);
}else{
alert("エラー: エラー コード [" xmlhttp.status "]"); 🎜>self.Error = "サーバー エラー [" xmlhttp.status "].";
clipboardData.setData("text",self.Url "?" self.Content); ;
}
}else
self.Fun();
}
if(this.Method.toLowerCase() == "post")
xmlhttp.send(this.コンテンツ);
else
xmlhttp.send(null)
}
}
/*================== ==== ============================================ ==== ==============
[XML オブジェクト クラスの作成]
[2008-04-09 作成]
var Http_Request=false
*/
function CreateAjax(){
var Ajax_Obj;
if(typeof(window.XMLHttpRequest) != "未定義"){
Ajax_Obj = new XMLHttpRequest(); .overrideMimeType)Ajax_Obj .overrideMimeType("text/html");
}else if(window.ActiveXObject){
var バージョン = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0"," MSXML2.XMLHttp. 3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
for(var i=0;itry{
var XmlHttp= new ActiveXObject(Versions [i]);
Ajax_Obj = XmlHttp;
}catch(Error){
if(i == (Versions.length-1))alert("エラー: サーバーの作成に失敗しましたオブジェクト インスタンス [ブラウザの問題]。");//ブラウザの問題//Throws Error.description
}
}
}
return Ajax_Obj;
}
/*=== == =============================================== == =================================
[ロード XML 操作クラス]
[作成年] 2009-06-12]
*/
function LoadXml(Path){
if(XiaoFeng.userAgent().name == "Firefox"){
var Dom = document.implementation.createDocument (" ", "", null); Dom.async = false;
}else{
Dom = new ActiveXObject("Microsoft.XMLDOM");
Dom.async = false;
Dom.load(パス)
}
/*=========== == =============================================== == ========================
[Cookie操作クラス]
[2008-04-09作成]
* /
var Cookies = {
GetVal:f​​unction(offset){//Cookie
var endstr = document.cookie.indexOf(";", offset); のデコード値を取得します。 endstr = = -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
},
Add:function(name,value) ,hours ){//Cookie の値を設定します。
varexpire = "";
if(hours != null){
expire = new Date((new Date()).getTime() 時間 * 3600000 ) ;
期限切れ = "; 期限切れ = 期限切れ.toGMTString();
}
document.cookie = name "=" エスケープ(値) 期限切れ;
Del:function ( name){// Cookie の削除
var exp = new Date()
exp.setTime(exp.getTime() - 1);
var cval = GetCookie (name); . cookie = 名前 "=" cval "; 期限切れ = exp.toGMTString();,
Get:function(name){// Cookie の元の値を取得します
var cookieValue = "";
var search = name "=";
if(document.cookie.length > 0 ){
offset = document.cookie.indexOf(search);
if (offset != -1){
offset = search.length
end = document.cookie.indexOf(" ; ", offset);
if (end == -1) end = document.cookie.length;
cookieValue = unescape(document.cookie.substring(offset, end))
}
}
return cookieValue;
},
get:function(name){/*Cookie の元の値を取得します。ここでは主に C# の Cookie 配列に対応します*/
var reg = new RegExp ( "(^|&)" name "=([^&]*)(&|$)");
var = Cookies.Get("HTGL").match(reg); ( r != null) return unescape(r[2]);
return ""
}
}
/*//============; = ================================================ = ======================
//[オブジェクトの実際の座標を取得]
[2008-04-09 作成]
*/
function getDim(e){
var rd = {x:0,y:0};
do{
rd.x = e.offsetLeft; y = e.offsetTop;
e = e.offsetParent; while(e)
}
/*//========= ==== ============================================ ==== ======================
//[オブジェクトの親ノードを取得]
[2008-06-作成04]
*/
function getParent(o,N){
var e = new Object();
e = e.parentNode;
try{ if(e.tagName.toLowerCase() == N.toLowerCase())break;}catch(e){break;}
}while(e)
return
}
/ *//========================================= ====== =======================================
// [オブジェクトの実際の四隅座標を取得する]
[2008-10-09作成]
*/
function getInfo(o){//座標を取得
var to = new Object ();
to.left = .right=to.top=to.bottom=0;
var theight = o.offsetHeight; 🎜>to.left = o.offsetLeft;
to.top = o.offsetTop;
}while(o != document.body)
to.right = to.left twidth;

to.bottom = to.top theight;
}
/*//============ =========== ====================================== =========== ============
//[指定された文字に一致するオブジェクトを取得]
[2008-10-09 作成]
*/
function getObj( o,s){
f = false;
while(o != document.body){
if(o.id.toLowerCase().indexOf( s) != -1){
f = true;
}
o = o.offsetParent;
return f; /*======== ======================================= ========== ==============================
[パラメータ値の取得]
[2008-06-08 作成]
*/
var getQuery = XiaoFeng.getQuery = function(){
if(arguments.length == 0)return null; .length == 1){
var reg = new RegExp("(^|&)" argument[0] "=([^&]*)(&|$)"); window.location.search.substr(1) .match(reg);
if (r!=null) return unescape(r[2]);
}else{
var Reg = new RegExp(arguments[1] "=\w ","gi");
try{return argument[0].match(Reg).toString().split(",")[0] .split("=")[1] ;}catch(e){return null;}
}
}
/*================ ============ ===================================== ============ ============
【ドラッグ機能】
[2008-04-09]作成
*/
var Drag = XiaoFeng.Drag = function(o ){
var x,y;
y = getDim(o).y; = イベント.clientX - x;
var deltaY=event.clientY - y;
o.style.filter = "Alpha(Opacity=60)"; onmousemove = function(){
if(ドラッグ){
o.style.left=(event.clientX - deltaX) "px";
o.style.top=(event.clientY - deltaY) "px";
if(event.clientX - deltaX if(event.clientY - deltaY if(event.clientX - deltaX o.offsetWidth >= XiaoFeng.System.Size(0).x)o.style.left = (XiaoFeng.System.Size(0).x - o. offsetWidth) "px";
if(event.clientY - deltaY o.offsetHeight >= XiaoFeng.System.Size(0).y)o.style.top = (XiaoFeng.System.Size(0).y ​​- o.offsetHeight) "px";
o.setCapture();
}
}
o.onmouseup = function(){
o.style.filter = "Alpha(Opacity= 100)";
drag = false;
o.releaseCapture();
}
}
/*================= ============= ==================================== ============= ==========
[文字変換クラス]
[2008-04-09]作成
[2008年]更新-06-02]
*/
var StrToHtml = {
sTh:function(s){
s = s.replace(/,"/gi,">" );
s = s.replace(/"/gi,""");
s = s.replace(/&/gi,"& "); s = s.replace(/ /gi," "); return s;
},
hTs:function(s){
s = s.replace( /," s = s.replace(/>/gi,">");
s = s.replace(/\/gi,"""); >s = s.replace(/&/gi," &");
s = s.replace(/ /gi," ");
return
},
bTy: function(s){
s = s.replace (/[/gi,"s = s.replace(/]/gi,">"); 🎜>},
yTb:function(s) {
s = s.replace(/,"[");
s = s.replace(/,"[" );
s = s.replace(/> /gi,"]");
s = s.replace(/>/gi,"]"); /gi," ");
リターン
} ,"}
/*=========================================== === =============================================
【フォームの幅と高さを取得する】
主に一部のシステムメソッド
*/
XiaoFeng.System = {
Event: function(){
var e = Object.Event ();
var o = {x : 0,y : 0};
switch(arguments[0]){
case 0 :/*マウスの相対位置*/
o.x = e .clientX;
o.y = e.clientY;
case 1:/*マウスの絶対位置*/
o.x = e.clientX Object.Scroll().Left; o.y = e.clientY Object.Scroll().Top;
break;
default:/*マウスの相対位置*/
o.x = e.clientX;
break;
}
return o;
},
Size : function(){//[フォームの幅と高さを取得]
var s = {x : 0,y : 0};
if(window.innerWidth){
s.x = window.innerWidth;
s.y = window.innerHeight; ){
if(arguments[0] == 1){
s.x = document.body.clientWidth;
s.y = document.body.clientHeight;
}else if(arguments[0] = = 2){
s.x = parseInt(document.documentElement.clientWidth) parseInt(document.documentElement.scrollLeft);
s.y = parseInt(document.documentElement.clientHeight) parseInt(document.documentElement.scrollTop); >}else{
s.x = document.documentElement.clientWidth;
s.y = document.documentElement.clientHeight;
}
}else if(document.body){
if(arguments[0] ] == 1){
s.x = document.body.scrollWidth;
s.y = document.body.scrollHeight
}else if(arguments[0] == 2){
s.x = ドキュメント。 body.clientWidth document.body.scrollLeft;
s.y = document.body.clientHeight document.body.scrollTop;
s.x = document.body.clientWidth; .clientHeight;
}
}
return s;
},
Scroll : function(){//[フォームのスクロールバーを取得]
var s = {x : 0,y : 0};
if(document.compatMode=='CSS1Compat'){
s.x = document.documentElement.scrollTop;
s.y = document.documentElement.scrollLeft; if(document.body){
s.x = document.body.scrollTop;
s.y = document.body.scrollLeft;
return
},
getRnd : 関数(){return Math.floor( Math.random()*1000000);}
}
/*======================= ========= ======================================== ========= ==========
[ファイル名とファイル拡張子を取得]
[2009-04-20]
*/
関数FileType(FName){
FName = FName.replace(/\/gi,"/");
FName = FName.substr(FName.lastIndexOf("/") 1); : FName.substr(0, FName.indexOf(".")),Type : FName.substr(FName.indexOf(".") 1)};
}
/*====== ======= ========================================== ======= ============================
[選択ウィンドウを開いて保存ウィンドウを開く]
[2009-05-28]
最初のメソッド:
var Dialog = new XiaoFeng.Dialog("ファイルを選択してください", "txt ファイル (*.txt)|*.txt|すべてのファイル (*.* )|*.*", ".txt");
2 番目のメソッド:
varダイアログ = new XiaoFeng.Dialog({
タイトル: "ファイルを選択してください",
フィルター: "txtファイル (*.txt) |*.txt|すべてのファイル (*.*)|*.*",
DefaultExt : ".txt"
});
dialog.Open();
注: パラメータは異なる場合があります。入力するとデフォルトになります。
*/
XiaoFeng.Dialog = function(){
this.DialogTitle = "開くファイルを選択してください";
this.DialogFilter = "Excel ファイル(*.xls)|*.xls|すべてのファイル(*.*)|*.*";
this.DialogDefaultExt = ".xls";クエリ = 引数;
var self = this ;
this.Init = function(){
if(typeof self.Query[0] == "string"){
self.DialogTitle = self .Query[0]?self.Query[0 ]:self.DialogTitle;
self.DialogFilter = self.Query[1]?self.Query[1]:self.DialogFilter;
self.DialogDefaultExt = self .Query[2]?self.Query[2 ]:self.DialogDefaultExt;
}else if(typeof self.Query[0] == "オブジェクト"){
self.DialogTitle = self.Query[0] ].Title?self.Query[0].Title:self.DialogTitle;
self.DialogFilter = self.Query[0].Filter?self.Query[0].Filter:self.DialogFilter; .DialogDefaultExt = self.Query[0].DefaultExt ?self.Query[0].DefaultExt:self.DialogDefaultExt;
}
try{
if(!$("Dialog_OpenSave")){
var _Dialog_Open = $C("オブジェクト") ;
_Dialog_Open.id = "Dialog_OpenSave";
_Dialog_Open.classid = "CLSID:F9043C85-F6F2-101A-A3C9-08002B2F49FB"; .display = "none";
ドキュメント .body.appendChild(_Dialog_Open);
$("Dialog_OpenSave").CancelError = true;
this.Open = function() {
$("Dialog_OpenSave").DialogTitle = this.DialogTitle;
$("Dialog_OpenSave").Filter = this.DialogFilter; Dialog_OpenSave").DefaultExt = this.DialogDefaultExt;
$("Dialog_OpenSave").ShowOpen();
return $("Dialog_OpenSave").FileName;
}
this.Save = function( ){
$("Dialog_OpenSave") .DialogTitle = this.DialogTitle.replace("Open","Save");
$("Dialog_OpenSave").Filter = this.DialogFilter; "Dialog_OpenSave").DefaultExt = this.DialogDefaultExt;
$("Dialog_OpenSave").FileName;
this.Init() ;
}
/*=========================================== === =============================================
【 無限ドロップダウン リスト 】
[2009-06-13]
ドロップダウン リストを配置する場所にコントロールを配置します (通常は非表示フィールドです)
XML をデータ ソースの場合は、XML フォームを直接呼び出すことができます。
var XMLDOM = LoadXml("CreateXML.ashx?RootId=15&sd=101");
Root = XMLDOM.documentElement;
Ajax を使用して呼び出すこともできます。データソースを作成します
var ajax = new XiaoFeng.AjaxRequest();
ajax.Url = "CreateXML.ashx?RootId=15&sd=101"; >if(e.Error != "未定義")return ;
var Root = e.responseXML.documentElement;
var ClassSelect = new SelectClass();
ClassSelect.Name = "ClassId";
ClassSelect.FirstOption = [["==選択してください==","0"]];
ClassSelect.SelectFirst = true; = function(e){}
ClassSelect.Select = "101";

パラメータの説明: ソースはドロップダウン リストです。
名前は非表示のコントロール ID で、通常は非表示のフィールドです。
FirstOption は、リストの最初の行に表示されるテキストです。それぞれに異なるテキストを指定できます。複数のテキストを設定します。例: [["==州を選択してください==,"0"],["==都市を選択してください==,"0"],["==郡を選択してください= =","0"]] FirstOption = "" または FirstOption = [] の場合、これらの単語は表示されません。デフォルトは [["== Please select ==",""]] です。
SelectFirst は true読み込み後に設定するテキストを表示するかどうか。False はデータの最初の行を表示するか、設定された行を表示するかです。
Fun この関数は、各ドロップダウン リストの onchange 選択イベントによってインターフェイスがトリガーされます。 function
選択のデフォルトは選択された属性の "" です
Run はこのカテゴリを実行します
*/
var SelectClass = XiaoFeng.SelectClass = function() {
this.Name = ""; 🎜>this.Source = new Object();
this.FirstOption = [["==選択してください==","0"]];
this.SelectFirst = true; = "";
this.Fun = function(e){return;}
this.Run = function(){
if(!$( this.Name)){
var _Input = $C("input");
_Input.type = "hidden";
_Input.id = this .Name; _Input);
}
$(this.Name).value = this.Select;
if(this.Source == "object")
if(this.Source.hasChildNodes){
this.CreateSelect(this.Source);
if(this.Select == ""){
var __Select = $(this.Name) .parentNode.getElementsByTagName("select"); >if(this.SelectFirst)
$(this.Name).value = __Select[__Select.length - 1].value;
else
$ (this.Name).value = __Select[__Select. length - 1].options[1].value;
}
}else{
var _Span = $C("span");
_Span.innerHTML = "データ ソースが空です。 ";
$(this.Name).parentNode.appendChild(_Span);
}
else{
var _Span = $C("span");
_Span.innerHTML = "データソースにエラーがあります。";
$(this.Name).parentNode.appendChild(_Span);
}
}
this.CreateSelect = function(node){
if(!node.hasChildNodes){ this._SelectFirstName();return;}
var Select = $C("select");
Select.id = Select.name = "select_" (new Date().getTime()); >var _f = false,_s = 0;
if(typeof this.FirstOption == "string")this.FirstOption = [];
if(typeof this.FirstOption == "object" && this.FirstOption .length > 0)
Select.add(this.CreateOption("==请选择==","0",false));
for(var i = 0;i if(node.childNodes[i].getAttribute("s") == null){_f = false;}else{_f = true;_s = i;} Select.add( this.CreateOption(node.childNodes[i].getAttribute("Name"),node.childNodes[i].getAttribute("Id"),_f));
}
$(this.Name)。 parentNode.insertBefore(Select,$(this.Name));
if(_s > 0)
this.CreateSelect(node.childNodes[_s]);
else{
this.CreateSelect( node.childNodes[0]);
if(this.SelectFirst)
if(this.FirstOption.length == 0)
Select.options[0].selected = true;
else
Select.options[1].selected = true;
}
}
this.CreateOption = function(t,v,f){
var OptionSub = new Option();
OptionSub.text = t;
OptionSub.value = v;
if(f)OptionSub.selected = f;
OptionSub を返します;
}
this._SelectFirstName = function(){
var _Select = $(this.Name).parentNode.getElementsByTagName("select");
var self = this,_f = true;
var _FirstOption = [],_FirstLength = this.FirstOption.length;
if(this.FirstOption.length == 0)_f = false;
for(var i = 0;i if(_f){ if(i >= _FirstLength)
_FirstOption = this.FirstOption[0];
else
_FirstOption = this.FirstOption[i];
_Select[i].options[0].text = _FirstOption[0];
_Select[i].options[0].value = _FirstOption[1];
}
if(i == _Select.length - 1)
_Select[i].setAttribute("onchange",function(){
var __Select = this.parentNode.getElementsByTagName("select ");
$(self.Name).value = __Select[__Select.length - 1].value;
if(self.FirstOption.length != 0 && this.selectedIndex == 0)
if(_Select.length > 1)
$(self.Name).value = __Select[__Select.length - 2].value
self.Fun(this);
else
_Select[i].setAttribute("onchange",function(){
self._RemoveSelect(this);
self._SelectNode(self.Source,this.value);
var __Select = this.parentNode.getElementsByTagName("select");
if(self.SelectFirst){
$(self.Name).value = __Select[__Select.length - 1].value; >}else
$(self.Name).value = __Select[__Select.length - 1].options[1].value;
if(self.FirstOption.length != 0 && this.selectedIndex == 0)
if(_Select.length > 1)
$(self.Name).value = __Select[__Select.length - 2].value
self.Fun(this); );
}
}
this._SelectNode = function(node,s){
for(var i = 0;i if(node.childNodes [i].getAttribute("Id") == s)
this.CreateSelect(node.childNodes[i]);
else
if(node.childNodes[i].hasChildNodes)this._SelectNode(node.childNodes[i],s); }
this._RemoveSelect = function(o){
var _Select = $(this.Name).parentNode.getElementsByTagName("select");
var _f = false;
for(var i = 0;i if(_Select[i] == o){_f = true;Continue;}
if(_f){_Select[ i].parentNode.removeChild(_Select[i]);i--;}
}
} }

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何使用JS和百度地图实现地图平移功能如何使用JS和百度地图实现地图平移功能Nov 21, 2023 am 10:00 AM

如何使用JS和百度地图实现地图平移功能百度地图是一款广泛使用的地图服务平台,在Web开发中经常用于展示地理信息、定位等功能。本文将介绍如何使用JS和百度地图API实现地图平移功能,并提供具体的代码示例。一、准备工作使用百度地图API前,首先需要在百度地图开放平台(http://lbsyun.baidu.com/)上申请一个开发者账号,并创建一个应用。创建完成

如何使用JS和百度地图实现地图热力图功能如何使用JS和百度地图实现地图热力图功能Nov 21, 2023 am 09:33 AM

如何使用JS和百度地图实现地图热力图功能简介:随着互联网和移动设备的迅速发展,地图成为了一种普遍的应用场景。而热力图作为一种可视化的展示方式,能够帮助我们更直观地了解数据的分布情况。本文将介绍如何使用JS和百度地图API来实现地图热力图的功能,并提供具体的代码示例。准备工作:在开始之前,你需要准备以下事项:一个百度开发者账号,并创建一个应用,获取到相应的AP

js字符串转数组js字符串转数组Aug 03, 2023 pm 01:34 PM

js字符串转数组的方法:1、使用“split()”方法,可以根据指定的分隔符将字符串分割成数组元素;2、使用“Array.from()”方法,可以将可迭代对象或类数组对象转换成真正的数组;3、使用for循环遍历,将每个字符依次添加到数组中;4、使用“Array.split()”方法,通过调用“Array.prototype.forEach()”将一个字符串拆分成数组的快捷方式。

如何使用JS和百度地图实现地图多边形绘制功能如何使用JS和百度地图实现地图多边形绘制功能Nov 21, 2023 am 10:53 AM

如何使用JS和百度地图实现地图多边形绘制功能在现代网页开发中,地图应用已经成为常见的功能之一。而地图上绘制多边形,可以帮助我们将特定区域进行标记,方便用户进行查看和分析。本文将介绍如何使用JS和百度地图API实现地图多边形绘制功能,并提供具体的代码示例。首先,我们需要引入百度地图API。可以利用以下代码在HTML文件中导入百度地图API的JavaScript

js中new操作符做了哪些事情js中new操作符做了哪些事情Nov 13, 2023 pm 04:05 PM

js中new操作符做了:1、创建一个空对象,这个新对象将成为函数的实例;2、将新对象的原型链接到构造函数的原型对象,这样新对象就可以访问构造函数原型对象中定义的属性和方法;3、将构造函数的作用域赋给新对象,这样新对象就可以通过this关键字来引用构造函数中的属性和方法;4、执行构造函数中的代码,构造函数中的代码将用于初始化新对象的属性和方法;5、如果构造函数中没有返回等等。

用JavaScript模拟实现打字小游戏!用JavaScript模拟实现打字小游戏!Aug 07, 2022 am 10:34 AM

这篇文章主要为大家详细介绍了js实现打字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

php可以读js内部的数组吗php可以读js内部的数组吗Jul 12, 2023 pm 03:41 PM

php在特定情况下可以读js内部的数组。其方法是:1、在JavaScript中,创建一个包含需要传递给PHP的数组的变量;2、使用Ajax技术将该数组发送给PHP脚本。可以使用原生的JavaScript代码或者使用基于Ajax的JavaScript库如jQuery等;3、在PHP脚本中,接收传递过来的数组数据,并进行相应的处理即可。

js是什么编程语言?js是什么编程语言?May 05, 2019 am 10:22 AM

js全称JavaScript,是一种具有函数优先的轻量级,直译式、解释型或即时编译型的高级编程语言,是一种属于网络的高级脚本语言;JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式,如函数式编程。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。