顯示具有 javascript 標籤的文章。 顯示所有文章
顯示具有 javascript 標籤的文章。 顯示所有文章

2016年12月13日 星期二

[javascript] 解決【您正在檢視的網頁嘗試要關閉視窗,您是否要關閉此視窗】



參考:https://social.msdn.microsoft.com/Forums/zh-TW/1649d31b-43c6-4b76-8d57-40b36aaf9d27


當使用javascript呼叫window.close();要關閉時有時候會出現

"您正在檢視的網頁嘗試要關閉視窗,您是否要關閉此視窗?"


void(window.open('','_parent',''));
window.close();


2014年12月18日 星期四

[jqGrid] jqGrid 屬性


jqgrid 屬性http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

一、jqGrid 屬性:

1、datatype:
     local 本地
     json json數據格式
     jsonstring
     xml
     xmlstring
     javascript
     function
     clientSide

2、width,height:列表寬度/高度
     
3、colNames(字符串數組,如:['AA','BB']):

4:colModel 列模式
     {name:'', index:'', width:50, sorttype:'int',align:'right', sortable:false}
     name:列名
     sorttype:排序類型 如:int、float、date等
     align 對齊方式: left、right。
     sortable 是否可排序:true 、false

5、multiselect 是否可多選 true、false

6、caption 列表標題

7、url 數據請求連接

8、rowNum 顯示行數

9、rowList 列表顯示行數選擇列表

10、viewrecords: true,false 是否顯示記錄總數

11、onSelectRow:選中列表記錄操作
     onSelectRow:function(ids) {
     
     }

12、direction 列表文字的排序方向


二、jqgrid 方法:
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods

######################## 說明:########################
<table id="list"></table>
<div id="pager"></div>
########################################################


#################### 讀取列表屬性或值 ################
1、獲取選中記錄的行號:
     var row = jQuery("#list").jqGrid('getGridParam','selrow');

2、根據行號返回選中行的數據
     var rowData = jQuery("#list").jqGrid('getRowData', row);
     rowData.***     讀取選中記錄的屬性值“***”未行屬性,如rowData.id,返回行屬性id的值

3、根據行號刪除列表數據
     var su=jQuery("#list").jqGrid('delRowData', 12);     //刪除行號未12的記錄

4、新增記錄
     var datarow = {id:"99",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"};
     var su=jQuery("#list").jqGrid('addRowData', 99, datarow);     //99未知含義

5、讀取列表請求數據的url
     jQuery('#list').jqGrid('getGridParam', 'url'))

6、返回列表的默認排序列
     jQuery('#list').jqGrid('getGridParam', 'sortname')

7、返回列表默認的排序方式
     jQuery('#list')jqGrid('getGridParam', 'sortorder')

8、返回列表選中記錄
     jQuery('#list')jqGrid('getGridParam','selrow')

9、返回列表當前頁序號:
     jQuery('#list')jqGrid('getGridParam','page'))

10、返回列表選中記錄數
     jQuery('#list').jqGrid('getGridParam','rowNum')

11、返回選中記錄數據類型:
     jQuery('#list').jqGrid('getGridParam','datatype')

12、返回列表的記錄數:
     jQuery('#list').jqGrid('getGridParam','records')

#################### 設置列表屬性或值 ################
說明:讀取相應的改为set**就能夠設置列表屬性或值.

13、選中某一行記錄
     jQuery("#list2").jqGrid('setSelection',"1");     //選中該列表第一行數據



三、ColModel API
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options





建立新的javaweb工程,添加json相關的 jar包。

附上代碼,共以後查考。



Servlet生產json數據格式:
/**
*
*/
package org.rico.demo.jqgrid.demo.dataload;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
* @author rico
* jqgrid 初始列表數據-json數據格式
*/
public class DataLoadByJSon extends HttpServlet {
     private static final long serialVersionUID = 5546844758953964549L;

     /**
      * 說明:網上借來的數據
      * 鏈接:http://www.cnblogs.com/jancyxue/archive/2011/08/17/2141676.html
      *
      *
     * jqGrid默認期望返回的json對象格式要求如下:
     * {"page":"1","total":"2","records":"13",
     * "rows":[
     *                 {id:"1",cell:["1","jancyxue","男","jancyxue@163.com","410958040","江西餘幹"]},
     *                 {id:"2",cell:["2","linda","女","linda@163.com","111111111","湖南"]},
     *                 {id:"3",cell:["3","jason","男","jason@sina.com","222222222","湖北"]},
     *                 {id:"4",cell:["4","lucy","女","lucy@sina.com","33333333","北京"]}
     *        ]
     * }
     * 當然,在js中,可以通過jqGrid的jsonReader屬性來修改默認格式
     * 我們可以在jsonReader中定義repeatitems : false。這样,可以使用下面的數據格式(为了防止出錯,我們在寫colModel的時候如果實在不會就對應着下面的每個字段寫,就不容易出錯了:
     * "rows":[
     *                 {id:"1",engName:"jancyxue",gender:" 男",email:"jancyxue@163.com",QQ:"410958040",address:"江西餘幹"]},
     *                 {id:"2",engName:"linda",gender:" 女",email:"linda@163.com",QQ:"111111111","address:湖南"]},
     *                 {id:"3",engName:"jason",gender:" 男",email:"jason@sina.com",QQ:"222222222",address:"湖北"]},
     *                 {id:"4",engName:"lucy",gender:" 女",email:"lucy@sina.com",QQ:"33333333",address:"北京"]}
     *        ]
     * 就像這样colModel:[{name:'id',index:'id',width:55},{name:'engName',index:'engName',width:100},{name:'gender',index:'gender',width:180, sortable:false},{name:'email',index:'email',width:180},
             {name:'QQ',index:'QQ',width:280},{name:'address',index:'address',width:280}]
     *
     */
     
     @Override
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          //模擬數據
          JSONObject jo = new JSONObject();
          Integer rows = Integer.valueOf(request.getParameter("rows"));
          Integer page = Integer.valueOf(request.getParameter("page"));
          System.out.println("####rows: " + rows + "####page: " + page);
         
          Integer totalSize = 100;
          jo.put("page", page);          //當前頁
         
          Integer totalPages = totalSize%rows==0?totalSize/rows:(totalSize/rows+1);
          jo.put("total", totalPages);          //總頁數
          jo.put("records", totalSize);     //總記錄數
         
          JSONArray ja = new JSONArray();
          JSONObject rowJO = null;
         
          int index = (page-1)*rows;
          int lastIndex = page*rows;
          if(lastIndex > 100) {
               lastIndex = 100;
          }
          for(int i=1+index; i<=lastIndex; i++) {
               rowJO = new JSONObject();
               rowJO.put("id", i + "");
               rowJO.put("name", "X" + i);
               rowJO.put("sex", "XX" + i);
               rowJO.put("phone", "XXX" + i);
               rowJO.put("email", "XXXX@126.com" + i);
               
               ja.add(rowJO);
          }
         
          jo.put("rows", ja);
          System.out.println(jo.toString());
         
          response.setCharacterEncoding("UTF-8");
          PrintWriter pw = response.getWriter();
          pw.write(jo.toString());
          pw.flush();
          pw.close();
     }

     @Override
     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          this.doGet(request, response);
     }
}



/**
*
*/
package org.rico.demo.jqgrid.demo.dataload;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @author rico
* 導航到jqgrid載入數據頁面
*/
public class DataLoadIndexServlet extends HttpServlet {
     private static final long serialVersionUID = 7226355428393263783L;

     @Override
     public void doGet(HttpServletRequest req, HttpServletResponse resp)
               throws ServletException, IOException {
          System.out.println("導航到jqgrid載入數據頁面");
          req.getRequestDispatcher("/jqgrid/dataLoad/dataload_json.jsp").forward(req, resp);
     }

     @Override
     public void doPost(HttpServletRequest req, HttpServletResponse resp)
               throws ServletException, IOException {
          this.doGet(req, resp);
     }

}



<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jqgrid 載入數據</title>
<link rel="stylesheet" type="text/css" media="screen" href="${pageContext.request.contextPath}/commons/css/jquery-ui-1.8.20.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="${pageContext.request.contextPath}/commons/css/ui.jqgrid.css" />

<script type="text/javascript" src="${pageContext.request.contextPath}/commons/js/jquery-1.9.0.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/commons/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/commons/js/i18n/grid.locale-cn.js"></script>
<style type="text/css">
ul li {
     float: left; margin-left: 15px;
     font-size: 8pt;
}
</style>
</head>
<body>
     <div style="height: 50px;">
          <ul>
               <li><a href="###" onclick="getSelectedRowData();">讀取選中記錄</a></li>
               <li><a href="###" onclick="deleteRow();">刪除選中行</a></li>
               <li><a href="###" onclick="updateRow();">更新第一行數據</a></li>
               <li><a href="###" onclick="addRow();">新增數據</a></li>
               <li><a href="###" onclick="getSeletedRowIds();">獲取選中記錄的id</a></li>
               <li><a href="###" onclick="setSelectedRow();">選中第一行記錄</a></li>
          </ul>
     </div>
     <table id="list2"></table>
     <div id="pager2"></div>
</body>

<script type="text/javascript">
jQuery("#list2").jqGrid({
        url:'${pageContext.request.contextPath}/dataLoadByJSon',
     datatype: "json",
    colNames:['id','name', 'sex', 'phone','email'],
        colModel:[
             {name:'id',index:'id', width:55},
             {name:'name',index:'name', width:100},
             {name:'sex',index:'sex', width:80, align:"right"},
             {name:'phone',index:'phone', width:80, align:"right"},          
             {name:'email',index:'email', width:80,align:"right"}          
        ],
        jsonReader:{
        page:"page",
        total:"total",
        repeatitems:false
    },
    pager:jQuery('#pager1'),
        rowNum:10,
        rowList:[10,20,30],
        pager: '#pager2',
        sortname: 'id',
    viewrecords: true,     //是否顯示記錄總數
    sortorder: "desc",
    width:900,
    height:'400',
    //recordpos: 'left',
    multiselect: true,
    caption:"JSON Example"
});
jQuery("#list2").jqGrid('navGrid','#pager2',{edit:false, add:false, del:false});


/**獲取選中記錄數據*/
function getSelectedRowData() {
     var row = jQuery("#list2").jqGrid('getGridParam','selrow');
     if(row) {
          var selectedRow = jQuery("#list2").jqGrid('getRowData',row);
          alert("###id="+selectedRow.id+" ###name="+selectedRow.name+"...");
     } else {
          alert("未選取任何記錄.");
     }
}

/**刪除選中行*/
function deleteRow() {
     var row = jQuery("#list2").jqGrid('getGridParam','selrow');
     if(!row || row=='') {
          alert("未選取任何記錄.");return;
     }
     
     var delRow = jQuery("#list2").jqGrid('delRowData', row);
     if(delRow)
           alert("未實現相關的刪除操作 .");
}

/**更新第一行數據*/
function updateRow() {
     var rowData = jQuery("#list2").jqGrid('setRowData', 1, {id:"X!", name:"ricoXX", sex:"manXX"});
     if(rowData)
          alert("更新第一行數據成功.");
}

/**新增數據*/
function addRow() {
     var datarow = {id:"101",name:"rio",sex:"man",phone:"199876****",email:"XXX.126.com"};
     var su=jQuery("#list2").jqGrid('addRowData', 101, datarow);
     if(su)
          alert("新增數據成功。");
     else
          alert("新增數據發生錯誤。");
}

/**獲取選中記錄的id*/
function getSeletedRowIds() {
     var ids = jQuery("#list2").jqGrid('getGridParam', 'selarrrow');
     alert(ids);
}

/**選中第一行記錄*/
function setSelectedRow() {
     jQuery("#list2").jqGrid('setSelection',"1");
}

</script>
</html>


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
     <display-name>jqgridDemo</display-name>
     <welcome-file-list>
          <welcome-file>index.html</welcome-file>
          <welcome-file>index.htm</welcome-file>
          <welcome-file>index.jsp</welcome-file>
          <welcome-file>default.html</welcome-file>
          <welcome-file>default.htm</welcome-file>
          <welcome-file>default.jsp</welcome-file>
     </welcome-file-list>
     
     
     <!-- 導航到jqgrid載入數據頁面-->
     <servlet>
          <servlet-name>DataLoadIndexServlet</servlet-name>
          <servlet-class>org.rico.demo.jqgrid.demo.dataload.DataLoadIndexServlet</servlet-class>
     </servlet>
     
     <servlet-mapping>
          <servlet-name>DataLoadIndexServlet</servlet-name>
          <url-pattern>/dataLoadIndexServlet</url-pattern>
     </servlet-mapping>
     
     <!-- jqgrid載入數據-json格式 -->
     <servlet>
          <servlet-name>DataLoadByJSon</servlet-name>
          <servlet-class>org.rico.demo.jqgrid.demo.dataload.DataLoadByJSon</servlet-class>
     </servlet>
     
     <servlet-mapping>
          <servlet-name>DataLoadByJSon</servlet-name>
          <url-pattern>/dataLoadByJSon</url-pattern>
     </servlet-mapping>
     
</web-app>


2014年9月30日 星期二

[Javascript]三個好用的Height,Width屬性





<script type="text/javascript">

//整個螢幕解析度
document.write("window.screen.height:" + window.screen.height + "<br/>");
document.write("window.screen.width:" + window.screen.width + "<br/>");

//扣掉視窗下面那個工作列
document.write("window.screen.availHeight:" + window.screen.availHeight + "<br/>");
document.write("window.screen.availWidth:" + window.screen.availWidth + "<br/>");

//扣掉視窗下面那個工作列 與瀏覽器工具列和邊框
document.write("document.documentElement.clientHeight:" + document.documentElement.clientHeight + "<br/>");
document.write("document.documentElement.clientWidth:" + document.documentElement.clientWidth + "<br/>");

</script>



From: http://www.dotblogs.com.tw/puma/archive/2009/04/02/javascript-width-height-clientwidth-availwidth-screen.aspx

2014年5月1日 星期四

[javascript] JSON 入門


轉自 瞭解JSON格式


{0:"Tom", 1:"John", 2:"Amy", 3:"Ivy"} 


物件(object)用大括號 { }

陣列(array)用中括號 [ ]

先記住這概念

--------------------------------

線上JSON格式化的網站

http://www.jsoneditoronline.org



另外有些字元在JSON不能直接打,需要做跳脫的(escape character) 在這
有些大家都很熟悉,就不細講了

\"
\\
\/
\b
\f
\n
\r
\t

這裡有些字碼表供參考

http://en.wikipedia.org/wiki/List_of_Unicode_characters

2014年4月20日 星期日

javascript - 解除封鎖右鍵

(function() {
var doc = document;
var body = doc.body;
var html = doc.documentElement;
html.onselectstart = html.oncopy = html.oncut = html.onpaste = html.onkeydown = html.oncontextmenu = html.onmousemove = body.oncopy = body.oncut = body.onpaste = body.onkeydown = body.oncontextmenu = body.onmousemove = body.onselectstart = body.ondragstart = doc.onselectstart = doc.oncopy = doc.oncut = doc.onpaste = doc.onkeydown = doc.oncontextmenu = doc.onmousedown = doc.onmouseup = null;
body.style.webkitUserSelect = 'auto';

function defaultHandler(event) {
event.returnValue = true;
}
for (event_type in ['selectstart', 'copy', 'cut', 'paste', 'keydown', 'contextmenu', 'dragstart']) {
html.addEventListener(event_type, defaultHandler);
body.addEventListener(event_type, defaultHandler);
doc.addEventListener(event_type, defaultHandler);
}

var jQuery = window.jQuery;
if (jQuery) {
jQuery(doc).unbind();
jQuery(body).unbind();
}

var $Fn = window.$Fn;
if ($Fn) {
try {
$Fn.freeElement(doc);
$Fn.freeElement(body);
} catch (e) {}
}

var jindo = window.jindo;
if (jindo) {
jindo.$A = null;
}

})();


---------------------------------------------------------

減肥版

(function() {var doc = document;var body = doc.body;var html = doc.documentElement;html.onselectstart = html.oncopy = html.oncut = html.onpaste = html.onkeydown = html.oncontextmenu = html.onmousemove = body.oncopy = body.oncut = body.onpaste = body.onkeydown = body.oncontextmenu = body.onmousemove = body.onselectstart = body.ondragstart = doc.onselectstart = doc.oncopy = doc.oncut = doc.onpaste = doc.onkeydown = doc.oncontextmenu = doc.onmousedown = doc.onmouseup = null;body.style.webkitUserSelect = 'auto';function defaultHandler(event) { event.returnValue = true;}for (event_type in ['selectstart', 'copy', 'cut', 'paste', 'keydown', 'contextmenu', 'dragstart']) { html.addEventListener(event_type, defaultHandler); body.addEventListener(event_type, defaultHandler); doc.addEventListener(event_type, defaultHandler);}var jQuery = window.jQuery;if (jQuery) { jQuery(doc).unbind(); jQuery(body).unbind();}var $Fn = window.$Fn;if ($Fn) { try { $Fn.freeElement(doc); $Fn.freeElement(body); } catch (e) {}}var jindo = window.jindo;if (jindo) {jindo.$A = null;}})();

2013年1月18日 星期五

javascript 檢查 EMail 格式 是否正確

參考 http://blog.udn.com/LupinBlog/1900901




function validateEmail(email) {
regularExpression = /^[^\s]+@[^\s]+\.[^\s]{2,3}$/;
if (regularExpression.test(email)) {
return true;
}else{
return false;
}
}

javascript 檢查 純數字

參考 http://blog.csdn.net/chenguang79/article/details/4430763



function IsNumber(s)
{
var patrn=/^[0-9]{1,20}$/;
if(!patrn.test(s))
{return false;}
else
{return true;}
}  

javascript 取得網址的URL參數和值



參考 http://www.yes-seo.tw/2011/04/javascript-get-url/


function Get_URL_Parameter(sParameter)
{
var url=window.location.toString();
var str="";
var str_value="";
if(url.indexOf("?")!=-1){
var ary=url.split("?")[1].split("&");
for(var i in ary){
str=ary[i].split("=")[0];
if (str == sParameter) {
str_value = decodeURI(ary[i].split("=")[1]);
}
}
}
return str_value;
}

2012年11月15日 星期四

javascript 讓window.open的彈出視窗置中

from http://www.pt.ntu.edu.tw/hmchai/PTcomputer/hJavaScript/JSwindow.htm
http://boray06.blogspot.tw/2011/04/windowopen.html
http://www.study-area.org/coobila/tutorial_275.html


讓window.open的彈出視窗置中
function openwindow(url,name,iWidth,iHeight)
{
  var url;     //網頁位置;
  var name;    //網頁名稱;
  var iWidth;  //視窗的寬度;
  var iHeight; //視窗的高度;
  var iTop = (window.screen.availHeight-30-iHeight)/2;  //視窗的垂直位置;
  var iLeft = (window.screen.availWidth-10-iWidth)/2;   //視窗的水平位置;
  window.open(url,name,'height='+iHeight+',,innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',status=no,location=no,status=no,menubar=no,toolbar=no,resizable=no,scrollbars=no');
}

ASP C#如何抓javascript變數





<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="Aspx_postback.WebForm2" %>   

  <!DOCTYPE html PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   

  <html   xmlns="http://www.w3.org/1999/xhtml"      >   
  <head id="Head1"   runat="server"   >   
                 <title   > Untitled   Page    </title   >   
                 <script   type="text/javascript"   >   
               
                   var   pa1   =   "Time   is"   ;  
                   function   go(){                           
                          PageMethods.cs(pa1,js);   //PageMethods.c#方法(c#接收的值,叫javascript另一方法)                      }  
                     
                   function   js(cs)  
                   {  
                         alert(cs);  
                   }  
                           

                 </script>   
  </head>   
  <body>   
                 <form  id="form2"   runat="server"   >   
                 <div>   
                             <input   type="button"   onclick="go();"   value="submits"   />   
                             <asp: ScriptManager   ID="ScriptManager1"   runat="server"   EnablePageMethods="true"/>   
                 </div>   
                 </form>   
  </body>   
  </html>   
==================================================
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;  
namespace Aspx_postback
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        [System.Web.Services.WebMethod]
        public static string cs(string pa1)
        {
            return pa1 + DateTime.Now.ToString();
        }  
    }
}



=======================

換行符號
Page.RegisterStartupScript("scriptStr", "<script language='javascript'>alert('"+strMsg+"'\\n换行);</script>");

在JS里,换行是\n,在C#里,就需要两个“\\”来表示一个“\”
“\”在C#中是转义字符

javascript ready和onload 的區別

from http://www.ljf.cn/2010/1/Item191451.html



jq ready()的方法就是Dom Ready,他的作用或者意義就是:在DOM加載完成後就可以可以對DOM進行操作。
一般情況先一個頁面響應加載的順序是,域名解析-加載html-加載js和css-加載圖片等其他信息。
那麼Dom Ready應該在“加載js和css”和“加載圖片等其他信息”之間,就可以操作Dom了。
2、Dom Load
用原生的js的時候我們通常用onload時間來做一些事情,比如:
window.onload=function(){
//do something
}
//或者經常用到的圖片,假設這個
document.getElementByIdx_x("imgID").onload=function(){
//do something
}
這種就是Dom Load,他的作用或者意義就是:在document文檔加載完成後就可以可以對DOM進行操作,document文檔包括了加載圖片等其他信息。
那麼Dom Load就是在頁面響應加載的順序中的“加載圖片等其他信息”之後,就可以操作Dom了。

2012年11月12日 星期一

javascript 使用 ActiveXObject 讀取txt

用javascript 開啟一個 txt文字檔

1.建立FileSystemObject物件

var objFSO=new ActiveXObject("Scripting.FileSystemObject");
如果在IE執行 必須要開啟  未標示為安全ActiveX
在 網際網路設定 的 安全性 那邊設定



2.開啟文字檔

var objStream=objFSO.OpenTextFile("c:\\test.txt",ForWriting,true,false)

常數值描述
ForReading1以只讀方式打開文件。不能寫這個文件。
ForWriting2以寫方式打開文件
ForAppending8打開文件並從文件末尾開始寫。


第一個true:是否建立新檔案  指明當指定的filename不存在時是否創建新文件

第二個false: 表示使用 ASC II 編碼開啟檔案

 或是使用三態值中的一個來指明打開文件的格式。如果忽略,那麼文件將以ASCII 格式打開。0 為ASCII 格式-1 為unicode 格式-2為系統默認格式。

如果文件是utf-8格式,用openTextFile 讀取文件就存在編碼問題。需要把最後format參數設置為-2 這樣就取系統默認格式。(這方法還是不行,需要把文件改為ANSI碼形式)

最後利用CreateTextFile,最後一項設置為true ,存為unicode格式,這樣存儲的文件就不會有亂碼了。


3.讀檔

var line=objStream.ReadLine();

ReadLine():讀 取一行,不包含換行字元
Read(num):讀取 num 個字元
ReadAll():讀取檔案全部

4.寫檔

objStream.WriteLine("寫入的字串");


Write(line):寫入一行資料
WriteLine(line);寫入一行資料加上換行字元
writeBlankLines(num);寫入 1 或num 行空白行

5.關閉檔案  釋放記憶體

objStream.Close();


http://hi.baidu.com/swmlk/item/ca5faf97e2b251d91b49dfaf

http://www.coolsun.idv.tw/modules/xhnewbb/viewtopic.php?topic_id=1100

javascript 計算執行時間

form http://blog.longwin.com.tw/2008/07/get-javascript-function-exec-time-2008/



<script type="text/javascript">
var start = new Date().getTime();
{
    // do something.
}
var end = new Date().getTime();

// 計算花多久時間
document.write((end - start) / 1000 + "sec");
</script>

2012年11月8日 星期四

JavaScript - Document對象內容集合




對象屬性
document.title //設置文檔標題等價於HTML的title標籤
document.bgColor //設置頁面背景色
document.fgColor //設置前景色(文本顏色)
document.linkColor //未點擊過的鏈接顏色
document.alinkColor //激活鏈接(焦點在此鏈接上)的顏色
document.vlinkColor //已點擊過的鏈接顏色
document.URL //設置URL屬性從而在同一窗口打開另一網頁
document.fileCreatedDate //文件建立日期,只讀屬性
document.fileModifiedDate //文件修改日期,只讀屬性
document.fileSize //文件大小,只讀屬性
document.cookie //設置和讀出cookie
document.charset //設置字符集 簡體中文:gb2312
———————————————————————
常用對象方法
document.write() //動態向頁面寫入內容
document.createElement(Tag) //創建一個html標籤對象
document.getElementById(ID) //獲得指定ID值的對象
document.getElementsByName(Name) //獲得指定Name值的對象
document.body.appendChild(oTag)
———————————————————————

body-主體子對象
document.body //指定文檔主體的開始和結束等價於body>/body>
document.body.bgColor //設置或獲取對象後面的背景顏色
document.body.link //未點擊過的鏈接顏色
document.body.alink //激活鏈接(焦點在此鏈接上)的顏色
document.body.vlink //已點擊過的鏈接顏色
document.body.text //文本色
document.body.innerText //設置body>…/body>之間的文本
document.body.innerHTML //設置body>…/body>之間的HTML代碼
document.body.topMargin //頁面上邊距
document.body.leftMargin //頁面左邊距
document.body.rightMargin //頁面右邊距
document.body.bottomMargin //頁面下邊距
document.body.background //背景圖片

document.body.appendChild(oTag) //動態生成一個HTML對象

常用對象事件
document.body.onclick="func()" //鼠標指針單擊對象是觸發
document.body.onmouseover="func()" //鼠標指針移到對象時觸發
document.body.onmouseout="func()" //鼠標指針移出對象時觸發
———————————————————————
location-位置子對象

document.location.hash // #號後的部分
document.location.host // 域名+端口號
document.location.hostname // 域名
document.location.href // 完整URL
document.location.pathname // 目錄部分
document.location.port // 端口號
document.location.protocol // 網絡協議(http:)
document.location.search // ?號後的部分

documeny.location.reload() //刷新網頁
document.location.reload(URL) //打開新的網頁
document.location.assign(URL) //打開新的網頁
document.location.replace(URL) //打開新的網頁
———————————————————————
selection-選區子對象
document.selection
———————————————————————

images集合(頁面中的圖像)

a)通過集合引用
document.images //對應頁面上的img標籤
document.images.length //對應頁面上img標籤的個數
document.images[0] //第1個img標籤
document.images[i] //第i-1個img標籤

b)通過nane屬性直接引用
img name="oImage"
document.images.oImage //document.images.name屬性

c)引用圖片的src屬性
document.images.oImage.src //document.images.name屬性.src

d)創建一個圖像
var oImage
oImage = new Image()
document.images.oImage.src="1.jpg"
同時在頁面上建立一個img /標籤與之對應就可以顯示

———————————————————————-

forms集合(頁面中的表單)

a)通過集合引用
document.forms //對應頁面上的form標籤
document.forms.length //對應頁面上/formform標籤的個數
document.forms[0] //第1個/formform標籤
document.forms[i] //第i-1個/formform標籤
document.forms[i].length //第i-1個/formform中的控件數
document.forms[i].elements[j] //第i-1個/formform中第j-1個控件

b)通過標籤name屬性直接引用
/formform name="Myform">input name="myctrl"/>/form
document.Myform.myctrl //document.表單名.控件名

c)訪問表單的屬性
document.forms[i].name //對應form name>屬性
document.forms[i].action //對應/formform action>屬性
document.forms[i].encoding //對應/formform enctype>屬性
document.forms[i].target //對應/formform target>屬性

document.forms[i].appendChild(oTag) //動態插入一個控件
document.all.oDiv //引用圖層oDiv
document.all.oDiv.style.display="" //圖層設置為可視
document.all.oDiv.style.display="none" //圖層設置為隱藏
document.getElementId("oDiv") //通過getElementId引用對象
document.getElementId("oDiv").style=""
document.getElementId("oDiv").display="none"
/*document.all表示document中所有對象的集合
只有ie支持此屬性,因此也用來判斷瀏覽器的種類*/

圖層對象的4個屬性
document.getElementById("ID").innerText //動態輸出文本
document.getElementById("ID").innerHTML //動態輸出HTML
document.getElementById("ID").outerText //同innerText
document.getElementById("ID").outerHTML //同innerHTML

資料來源 : http://www.ccvita.com/80.html

2012年11月7日 星期三

javascript submit postback管理




postback 的控制很重要

沒有做好控管 後端的server很容易被攻擊 癱瘓

所以驗證工作在前端的javascript就要先做好

form上面先增加 onsubmit 事件

在用javascript判斷 是否要postback




            function DoSubmit() {
                if (document.getElementById("cbBool").checked)
                {
                    //document.frames.commentForm.submit();
                    return true;
                } else {
                    return false;
                }
             
            }//



<form id="commentForm" runat="server" onsubmit="return  DoSubmit();">
<asp:Button ID="Button1" runat="server" Text="enter" type="submit"   OnClick="bt_Click"/>
<form/>
             


參考 http://stackoverflow.com/questions/2521081/onsubmit-does-not-work

javascript [原創] 兩欄密碼是否相同


                   
        //密碼是否一致
        function equalto() {
            text1 = document.getElementById("Password1");
            text2 = document.getElementById("Password2");
            if (text1.value != text2.value) {
                document.getElementById("msg").innerText = "密碼不一致";
            } else { document.getElementById("msg").innerText = ""; }
        }




<p>
修改密碼:<asp:TextBox CssClass="required" minlength="5" ID="Password1" type="password" runat="server"></asp:TextBox>
</p>
<p>
確認密碼:<asp:TextBox CssClass="required" onchange="equalto();"  minlength="5" ID="Password2" type="password" runat="server"></asp:TextBox>
<a id="msg"></a>
</p>

JavaScript 實用小技巧

from http://www.wells.hk/ws_toolsdetail.php?tools_id=1103102480


1. oncontextmenu="window.event.returnValue=false" 將徹底遮罩滑鼠右鍵
<table border oncontextmenu=return(false)><td>no</table> 可用於Table 

2. <body onselectstart="return false"> 取消選取、防止複製

3. onpaste="return false" 不准貼上

4. oncopy="return false;" oncut="return false;" 防止複製

5. <link rel="Shortcut Icon" href="favicon.ico"> IE位址欄前換成自己的圖示

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夾中顯示出你的圖示

7. <input style="ime-mode:disabled"> 關閉輸入法

8. 永遠都會帶著框架
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm為框架網頁
// --></script>

9. 防止被人frame
<SCRIPT LANGUAGE=JAVASCRIPT><!-- 
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

10. 網頁將不能被另存為
<noscript><iframe src=*.html></iframe></noscript> 

11. <input type=button value=查看網頁源代碼 
onclick="window.location = "view-source:"+ "http://www.pconline.com.cn"">

12.刪除時確認
<a href="javascript:if(confirm("確實要刪除嗎?"))location="boos.asp?&areyou=刪除&page=1"">刪除</a> 

13. 取得控制項的絕對位置
//Javascript
<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"/nleft="+l);
}
</script>
//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控制項的位置"
end function
--></script>

14. 游標是停在文本框文字的最後
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">

15. 判斷上一頁的來源
javascript:
document.referrer

16. 最小化、最大化、關閉視窗
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> 
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> 
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" VALUE="Close"></OBJECT>
<input type=button value=最小化 onclick=hh1.Click()>
<input type=button value=最大化 onclick=hh2.Click()>
<input type=button value=關閉 onclick=hh3.Click()>
本例適用於IE

17.遮罩功能鍵Shift,Alt,Ctrl
<script>
function look(){ 
if(event.shiftKey) 
alert("禁止按Shift鍵!"); //可以換成ALT CTRL
} 
document.onkeydown=look; 
</script>

18. 網頁不會被緩存
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">

19.怎樣讓表單沒有凹凸感?
<input type=text style="border:1 solid #000000"> 
或
<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: 
1 solid #000000"></textarea>

20.<div><span>&<layer>的區別? 
<div>(division)用來定義大段的頁面元素,會產生轉行 
<span>用來定義同一行內的元素,跟<div>的唯一區別是不產生轉行 
<layer>是ns的標記,ie不支援,相當於<div>

21.讓彈出窗口總是在最上面:
<body onblur="this.focus();">

22.不要捲軸? 
讓豎條沒有: 
<body style="overflow:scroll;overflow-y:hidden"> 
</body> 
讓橫條沒有: 
<body style="overflow:scroll;overflow-x:hidden"> 
</body> 
兩個都去掉?更簡單了 
<body scroll="no"> 
</body> 

23.怎樣去掉圖片鏈結點擊後,圖片周圍的虛線?
<a href="#" onFocus="this.blur()"><img src="logo.jpg" border=0></a>

24.電子郵件處理提交表單
<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain"> 
<input type=submit>
</form>

25.在打開的子視窗刷新父視窗的代碼裏如何寫?
window.opener.location.reload()

26.如何設定打開頁面的大小
<body onload="top.resizeTo(300,200);">
打開頁面的位置<body onload="top.moveBy(300,200);">

27.在頁面中如何加入不是滿鋪的背景圖片,拉動頁面時背景圖不動 
<STYLE> 
body 
{background-image:url(logo.gif); background-repeat:no-repeat; 
background-position:center;background-attachment: fixed} 
</STYLE> 

28. 檢查一段字串是否全由數字組成
<script language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

29. 獲得一個視窗的大小
document.body.clientWidth; document.body.clientHeight

30. 怎麼判斷是否是字元
if (/[^/x00-/xff]/g.test(s)) alert("含有漢字");
else alert("全是字元");

31.TEXTAREA自適應文字行數的多少
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

32. 日期減去天數等於第二個日期
<script language=Javascript>
function cc(dd,dadd)
{
//可以加上錯誤處理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>

33. 選擇了哪一個Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>

34.腳本永不出錯
<SCRIPT LANGUAGE="JavaScript"> 
<!-- Hide 
function killErrors() { 
return true; 
} 
window.onerror = killErrors; 
// --> 
</SCRIPT>

35.ENTER鍵可以讓游標移到下一個輸入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">

36. 檢測某個網站的鏈結速度:
把如下代碼加入<body>區域中:
<script language=Javascript>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"
function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value=測試中……> =》<input type=text 
name=url"+i+" size=40> =》<input type=button value=GO 
onclick=window.open(this.form.url"+i+".value)><br>")
document.write("<input type=submit value=刷新></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="鏈結超時"}
else
{document.forms[0]["txt"+b].value="時間"+tim/10+"秒"}
b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1 
onerror=auto("http://"+autourl+"")>")}
run()</script>

37. 各種樣式的游標
auto :標準游標
default :標準箭頭
hand :手形游標
wait :等待游標
text :I形游標
vertical-text :水平I形游標
no-drop :不可拖動游標
not-allowed :無效游標
help :?幫助游標
all-scroll :三角方向標
move :移動標
crosshair :十字標
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

38.頁面進入和退出的特效
進入頁面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
推出頁面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"> 
這個是頁面被載入和調出時的一些特效。duration表示特效的持續時間,以秒為單位。transition表示使用哪種特效,取值為1-23:
  0 矩形縮小 
  1 矩形擴大 
  2 圓形縮小
  3 圓形擴大 
  4 下到上刷新 
  5 上到下刷新
  6 左到右刷新 
  7 右到左刷新 
  8 豎百葉窗
  9 橫百葉窗 
  10 錯位橫百葉窗 
  11 錯位豎百葉窗
  12 點擴散 
  13 左右到中間刷新 
  14 中間到左右刷新
  15 中間到上下
  16 上下到中間 
  17 右下到左上
  18 右上到左下 
  19 左上到右下 
  20 左下到右上
  21 橫條 
  22 豎條 
  23 以上22種隨機選擇一種

39.在規定時間內跳轉
<META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com"> 

40.網頁是否被檢索
<meta name="ROBOTS" content="屬性值">
  其中屬性值有以下一些:
  屬性值為"all": 檔將被檢索,且頁上鏈結可被查詢;
  屬性值為"none": 檔不被檢索,而且不查詢頁上的鏈結;
  屬性值為"index": 檔將被檢索;
  屬性值為"follow": 查詢頁上的鏈結;
  屬性值為"noindex": 檔不檢索,但可被查詢鏈結;
  屬性值為"nofollow": 檔不被檢索,但可查詢頁上的鏈結。
 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template