卡西卡的小寶庫
寶庫寶庫寶庫

[JS]取消事件

Posted In: , . By 卡西卡

重點:

  • Firefox沒有window.event的物件,必須透過addEventListener才能把event當成參數傳入function中。

可共用:

IE可用:

Firefox可用:

[SCRIPT]
window.onload = function() {
  addEvent(document.getElementById("form1"), "submit", checkForm);
}

function checkForm(e) {
  var obj = null;
  if ( e.srcElement ) {
    obj = e.srcElement;
  } // if
  else if ( e.target ) {
    obj = e.target;
  } // else if

  // 取消submit
  cancelEvent(e);
}

function cancelEvent(e)
{
  if ( e && e.preventDefault ) {
    // Firefox
    e.preventDefault();
    e.stopPropagation();
  } // if
  else {
    // IE
    e.cancelBubble=true;
    e.returnValue = false;
  } // else
  return false;
}

function addEvent(obj, evType, fn)
{
  if (obj.addEventListener) {
    obj.addEventListener(evType, fn, false);
    return true;
  } // if
  else if (obj.attachEvent) {
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } // else if
  else {
    return false;
  } // else
}
[/SCRIPT]
另一種方法: [SCRIPT]
function fnTest(evt) {
  evt=evt?evt:(window.event?window.event:null);
  printObject(evt);
}
function printHTML(str) {
  var div = document.getElementById('divMsg');
  div.innerHTML = str;
}
function printObject(obj) {
  var s = "";
  for(att in obj) s += ("<li>"+att+"="+obj[att]+"</li>");
  printHTML("<ol>"+s+"</ol>");
}
[/SCRIPT]
[BODY]
<input type="button" id="btnSave" value="TEST" onclick="fnTest(event);"/>
<div id="divMsg">divMsg</div>
[/BODY]

參考資料:

 

可共用:

  • obj.innerHTML

IE可用:

  • outerHTML
  • innerText

Firefox可用:

  • textContent
[SCRIPT]
function print(str) {
  var div = document.getElementById('divMsg');
  if ( div.innerText ) {
    // IE
    div.innerText = str;
  } // if
  else {
    // FireFox
    div.textContent = str;
  } // else
}
function printHTML(str) {
  var div = document.getElementById('divMsg');
  div.innerHTML = str;
}
[/SCRIPT]

 

[JS]getAttribute

Posted In: , . By 卡西卡

可共用:

IE可用:

  • obj.msg, obj['msg']
[SCRIPT]
function fnTest() {
  var obj = document.getElementById('txtStr');
  var msg = obj.getAttribute("msg");
  print(obj.id+'='+obj.value+','+msg );
}
[/SCRIPT]

[BODY]
<form>
<input type="text" id="txtStr" value="123-Abc" msg="測試" />
<input type="button" id="btnSave" value="TEST" onclick="fnTest();"/>
<br />
<div id="divMsg">divMsg</div>
</form>
[/BODY]

 

主要是用WScript.Shell是讀寫Registry的值。
若發生「 Automation 伺服程式無法產生物件」的錯誤就要調整IE的安全性設定,將「起始不標示為安全的ActiveX控制項」設定為啟用或提示。

<script language="javascript"> // 列印 function fnPrint() { try { // 儲存原本頁首頁尾的設定,然後設定空白 var ret = saveAndClearSetting(); // 列印 window.print(); // 回存原本頁首頁尾的設定 if ( ret ) restoreSetting(); } catch (e) { alert("err="+e.description); } } var hkey_path = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"; var hkey_key_header = hkey_path+"header"; // 頁首 var hkey_key_footer = hkey_path+"footer"; // 頁尾 var hkey_key_margin_bottom = hkey_path+"margin_bottom"; // 邊界(下) var hkey_key_margin_left = hkey_path+"margin_left"; // 邊界(左) var hkey_key_margin_right = hkey_path+"margin_right"; // 邊界(右) var hkey_key_margin_top = hkey_path+"margin_top"; // 邊界(上) var old_header = "&w&b第 &p 頁,共 &P 頁"; var old_footer = "&u&b&d"; // 儲存原本頁首頁尾的設定,然後設定空白 function saveAndClearSetting() { try { var RegWsh = new ActiveXObject("WScript.Shell"); old_header = RegWsh.RegRead(hkey_key_header); old_footer = RegWsh.RegRead(hkey_key_footer); RegWsh.RegWrite(hkey_key_header,""); RegWsh.RegWrite(hkey_key_footer,""); return true; } catch (e) { if ( e.description.indexOf("伺服程式無法產生物件") != -1 ) { alert("請調整IE瀏覽器的安全性\n網際網路選項\安全性\自訂層級\n「起始不標示為安全的ActiveX控制項」設定為啟用或提示。"); } // if else { alert("ERR="+e.description); } // else } // catch return false; } // 回存原本頁首頁尾的設定 function restoreSetting() { try { var RegWsh = new ActiveXObject("WScript.Shell"); RegWsh.RegWrite(hkey_key_header,old_header); RegWsh.RegWrite(hkey_key_footer,old_footer); } catch (e) { if ( e.description.indexOf("伺服程式無法產生物件") != -1 ) { alert("請調整IE瀏覽器的安全性\n網際網路選項\安全性\自訂層級\n「起始不標示為安全的ActiveX控制項」設定為啟用或提示。"); } // if else { alert("ERR="+e.description); } // else } // catch } </script>
http://klcintw4.blogspot.com/2007/09/javascriptie.html

 

客戶今天在MS更新後,原本正常的ASP.NET網站整個不能用,在事件檢視器裡有1007和1084的記錄。

http://support.microsoft.com/kb/835387/zh-tw

MessageId = 1007
由於在組態檔的 processModel 區段中提供了無效的使用者名稱和 (或) 密碼,所以無法啟動 aspnet_wp.exe 程式。.

MessageId = 1084
無法啟動 aspnet_wp.exe。. 這項失敗的錯誤碼為 %1。. 當背景工作處理序帳戶具有權限來讀取 . NET Framework 檔案不足時, 會發生這個錯誤。 請確定 .NET Framework 安裝正確,而且安裝目錄上的 ACL 允許存取設定的帳戶。

在GOOGLE搜一下,經實際測試後,整理如下:

  1. 移除KB886903的更新(如果有的話)
  2. 編輯[C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config]
    找到 <processModeluserName="machine" password="AutoGenerate" … />
    確定 userName是machine,password是AutoGenerate。
  3. 移除ASPNET的帳號
    執行 aspnet_regiis -i
    執行 iisreset

http://klcintw4.blogspot.com/2007/08/iis8000400510071084.html

 

[JS]電視網頁畫面切換

Posted In: . By 卡西卡


測試:
<script type="text/javascript" >
window.onload = Pages_Init;
</script>
<body>
<div id="MainPage">MainPage</div>
<div id="flash0" style="display:none;">flash0</div>
<div id="flash1" style="display:none;">flash1</div>
<div id="flash2" style="display:none;">flash2</div>
<script>new Page('MainPage',10);new Page('flash0',10);new Page('flash1',10);new Page('flash2',10);</script>
</body>

 

解法:SqlCommand.CommandTimeout[msdn] 加大,預設為30(秒)。

錯誤:SQL執行的時間太長就會發生 System.Data.SqlClient.SqlException。

ex
{"已超過連接逾時的設定。在作業完成之前超過逾時等待的時間,或者是伺服器未回應。" }
    [System.Data.SqlClient.SqlException]: {System.Data.SqlClient.SqlException}
    System.Object: {System.Data.SqlClient.SqlException}
    _className: null
    _COMPlusExceptionCode: -532459699
    _exceptionMethod: <未定義的值>
    _exceptionMethodString: null
    _helpURL: null
    _HResult: -2146232060
    _innerException: { }
    _message: "系統錯誤。"
    _remoteStackIndex: 0
    _remoteStackTraceString: null
    _source: null
    _stackTrace: {System.Array}
    _stackTraceString: null
    _xcode: -532459699
    _xptrs: 0
    HelpLink: null
    HResult: -2146232060
    InnerException: { }
    Message: "已超過連接逾時的設定。在作業完成之前超過逾時等待的時間,或者是伺服器未回應。"
    Source: ".Net SqlClient Data Provider"
    StackTrace: "   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)\r\n   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)\r\n   at System.Data.SqlClient.SqlCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)\r\n   at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)\r\n   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)\r\n   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)\r\n   at Textar.Klchang.Helper.SqlClient.DbBroker.QueryDS(String cmdText, CommandType cmdType, IDataParameter[] parameters) in d:\\project\\mmde\\core\\sqlclient3\\dbbroker.cs:line 436\r\n   at mmde.core.db.clsRptZ.RptZ02(DateTime COURSE_DATE1, DateTime COURSE_DATE2, DateTime VIEW_DATE1, Date
Time VIEW_DATE2) in d:\\project\\mmde\\web\\core\\db\\clsrptz.cs:line 56\r\n   at mmde.admin.reports.RptZ02.BindData() in d:\\project\\mmde\\web\\admin\\reports\\rptz02.aspx.cs:line 50"
    TargetSite: {System.Reflection.RuntimeMethodInfo}

其它:調整 SqlConnection.ConnectionString[msdn] (Connect Timeout, Connection Timeout)參數無效!

 

取得 IP, Hostname

Posted In: , , , . By 卡西卡

根據IP地址獲得主機名稱
// .NET 1.1 ~
System.Net.IPHostEntry host = System.Net.Dns.GetHostByAddress("192.168.0.1"); // [msdn]
Console.WriteLine(host.HostName);

// .NET 2.0 ~
System.Net.IPHostEntry host = System.Net.Dns.GetHostEntry("192.168.0.1"); // [msdn]
Console.WriteLine(host.HostName);

取得本機IP
static void Main(string[] args)
{
  // 顯示主機名
  string hostname = Dns.GetHostName();
  Console.WriteLine("hostname = {0}", hostname);

  // 顯示每個IP地址
  IPHostEntry hostent = Dns.GetHostByName(hostname); // 主機信息
  IPAddress[] addrs = hostent.AddressList; // IP地址數組
  foreach ( IPAddress ip in hostent.AddressList )
  {
    Console.WriteLine("Address: {0}", ip);
  } // foreach
}
 

VB, VBA

 

MD5加密

Posted In: , . By 卡西卡

 

Base64 編解碼

Posted In: , , , , . By 卡西卡

C#

VB, VBA - 中文不支援