技术集结号 第二季

 

此文档会不定时更新,都是自己平时总结获取遇到问题的解决方案,希望对大家有所帮助,更希望大家都提宝贵意见

 

一 js多次删除数组元素(效果参照:详细技术>多次删除数组.html页面)

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type" content="text/html;charset=gb2312" />

<title>无标题文档</title>

<scriptlanguage="javascript">

var my

functionaaa(dx,mycars)

{

    if(isNaN(dx)||dx>mycars.length){returnfalse;}

    for(var i=0,n=0;i<mycars.length;i++)

    {

        if(mycars[i]!=mycars[dx])

        {

            mycars[n++]=mycars[i]

        }

    }

    mycars.length=mycars.length-1

     my=mycars;

}

functiontest(n){

varmycars=new Array()

    mycars[0]="xxx";

    mycars[1]="QQQQ";

    mycars[2]="WWWW";

    mycars[3]="aaaa";

    mycars[4]="bbbb";

    mycars[5]="ccccc";

    var bbb;

    if(my!=null&&my.length!=mycars.length){bbb=my;}

    else(bbb=mycars)

        aaa(n,bbb);

        alert(my);

}

</script>

</head>

<body>

<inputtype="text" name="t1" value="">

<inputtype="button" name="" value="test..."οnclick="test(document.all.t1.value);">

</body>

</html>

 

实现动态连续删除数组元素

 

二 SVN客户端在MyEclipse6.0下安装及应用

安装SVN:下载SVN解压包,解压后在文件夹下找到features和plugins文件夹(最主要就是这两个文件夹)。复制这两个文件夹到MyEclipse 6.5安装路径下的eclipse文件夹中,全部替换即可。然后重启MyEclipse,在MyEclipse工具栏中按以下步骤进行便可将SVN Repository 添加到MyEclipse的控制台中。

步骤:Window-->ShowView-->Other-->SVN-->SVN Repository

三 刷新访问量脚本(效果参照:详细技术>主刷页.htm)

<HTML>

<HEAD>

<TITLE> 刷新访问量脚本</TITLE>

<METANAME="Generator" CONTENT="EditPlus">

<META NAME="Author"CONTENT="">

<METANAME="Keywords" CONTENT="">

<METANAME="Description" CONTENT="">

</HEAD>

<BODY>

<CENTER><FONTSIZE="6" COLOR="#6600FF">刷新访问量脚本</FONT></CENTER>

<FONT SIZE="5"COLOR="#FF00FF"><CENTER>(默认为: 1 秒打开,10秒关闭,11秒清变量i为 0 )<BR>(可根据源代码自行调节时间以及链接)<BR><BR><input type="button" value="暂停刷新脚本"onClick="window.clearInterval(flushVisit);"/><BR><BR><inputtype="button" value="开始刷新脚本"onClick="startFlush();"/></CENTER></FONT>

<BR><BR><BR>

<pid="p1"></p>

<SCRIPTLANGUAGE="JavaScript">

var i=0;

var zb1=null;

function autoclose()

{

    if(i== 1 )

    {

    zb1=window.open("http://vip.tianjihr.com/Operation/RefreshInvite.aspx?cz=6&id=204597,204602",null);

    }

    document.all.p1.innerText= i;

    if( i== 16 ){i=0; }//重置为0,下一秒(0+1秒)重新开启窗口

    if( i == 15 ){zb1.close();}//关闭窗口时间

    i++;

}

var flushVisit =null;

function startFlush()

{

    flushVisit= null;

    flushVisit= window.setInterval( autoclose, 1000 );

}

//window.clearInterval

    autoclose();

    startFlush();

</SCRIPT>

</BODY>

</HTML>

四 配置jdk环境

1运行jdk可执行文件(假设装在c:\jdk1.3).

2在环境变量中添加:

set   JAVA_HOME=c:\jdk1.3

set   PATH=%PATH%;%JAVA_HOME%\bin  

set   CLASSPATH=c:\jdk1.3\lib;c:\jdk1.3\jre\lib;

.;c:\jdk1.3\lib\dt.jar;c:\jdk1.3\lib\tools.jar;

3在命令提示符下输入:

javac   -version

如有相应的版本信息出现,则安装成功。

至于调试,就看你的经验和功力了

五 部署运行tomcat时提示:tomcat6.0The Apache Tomcat Nativelibrary which allows     optimalperformance in production environments was not found on the     java.library.path (...你的系统环境PATH路径...)问题(资源参照:详细技术> tomcat的ARP错误文件夹)

部署运行tomcat时提示:tomcat6.0The Apache Tomcat Native library which allows   optimal performance in production environmentswas not found on the    java.library.path (...你的系统环境PATH路径...)问题

原因:上网查了半天有关ARP的文章,知道tomcat推荐使用apache的arp(Apache   portable Run-time libraries,Apache可移植运行库)

解决:下载http://tomcat.heanet.ie/native/1.1.10/binaries/win32/tcnative-1.dll(迅雷下载)文件,放到C:\WINDOWS\system32下面和\TOMCAT\bin\下,OK了

关于spring 2p标签

1、spring p标签是spring内置的,只要在xml头部申明下就可以调用,用法相当于<property>

比如

Code
<?xml version="1.0" encoding="UTF-8"?>
<beans
    
xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p
="http://www.springframework.org/schema/p"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="loginAction" class="com.ambow.exam.action.LoginAction" p:nam="sasa"></bean>

</beans>

这里是给LoginAction里给nam注入值sasa

这里相当于

Code
<?xml version="1.0" encoding="UTF-8"?>
<beans
    
xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p
="http://www.springframework.org/schema/p"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="loginAction" class="com.ambow.exam.action.LoginAction">
                <property name="nam">
            <value>sasa</value>
        </property>
        </bean>

</beans>

2Spring2.0中还有一个非常实用的解析器,SimplePropertyNamespaceHandle,若配置文件中引用http://www.springframework.org/schema/p命令空间,则将会使用SimplePropertyNamespaceHandle来处理这个Bean的定义,可以在Spring2.0中的Bean中以更简单的方式配置设值方法注入,如下所示:
< ?xml version="1.0" encoding="UTF-8"?>
< beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

< bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"
  p:driverClassName="org.gjt.mm.mysql.Driver"
  p:url="jdbc:mysql://127.0.0.1:3306/easyjf-bbs" p:username="root"p:password="mysql" />
< /beans>

在上面的配置中,使用p:url则可以直接注入BasicDataSource的url属性值,可以使用p:url-ref属性来引用另外一个Bean。
    如,Spring2.0以前的一个DAO配置:
< bean id="userDao"class="com.easyjf.bbs.dbo.springjdbc.UserDaoSpringJdbc">
       < property name="dataSource"><ref bean="dataSource"/>< /property>
   < /bean> 
  使用简短属性方式,则改成如下:
< bean id="userDao"class="com.easyjf.bbs.dbo.springjdbc.UserDaoSpringJdbc"p:dataSource-ref="dataSource" />

七 版本问题:java.lang.UnsupportedClassVersionError:Bad version number in .class file

解决:在myEclipse中改变编译器的方法:Project->Properties->JavaCompiler->Configure Workspace Setting,在弹出的页面中可以进行设置。

 

八  获取MyEclipse6的注册码 Myeclipse7.0注册机的源代码(资源参照:详细技术>MyEclipseGen.java)

编译运行后输入想要注册的用户名,然后再控制台下就会生成相应的注册码!

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

 

public class MyEclipseGen {

private static final String LL = "Decompilingthis copyrighted software is a violation of both your license agreement and theDigital Millenium Copyright Act of 1998(http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of theDMCA, penalties range up to a $500,000 fine or up to five years imprisonmentfor a first offense. Think about it; pay for a license, avoid prosecution, andfeel better about yourself.";

 

public String getSerial(String userId, StringlicenseNum) {

   java.util.Calendar cal = java.util.Calendar.getInstance();

   cal.add(1, 3);

   cal.add(6, -1);

   java.text.NumberFormat nf = newjava.text.DecimalFormat("000");

   licenseNum = nf.format(Integer.valueOf(licenseNum));

   String verTime = new StringBuilder("-").append(

     new java.text.SimpleDateFormat("yyMMdd").format(cal.getTime()))

     .append("0").toString();

   String type = "YE3MP-";

   String need = new StringBuilder(userId.substring(0,1)).append(type)

     .append("300").append(licenseNum).append(verTime).toString();

   String dx = new StringBuilder(need).append(LL).append(userId)

     .toString();

   int suf = this.decode(dx);

   String code = new StringBuilder(need).append(String.valueOf(suf))

     .toString();

   return this.change(code);

}

 

private int decode(String s) {

   int i;

   char[] ac;

   int j;

   int k;

   i = 0;

   ac = s.toCharArray();

   j = 0;

   k = ac.length;

   while (j < k) {

    i = (31 * i) + ac[j];

    j++;

   }

   return Math.abs(i);

}

 

private String change(String s) {

   byte[] abyte0;

   char[] ac;

   int i;

   int k;

   int j;

   abyte0 = s.getBytes();

   ac = new char[s.length()];

   i = 0;

   k = abyte0.length;

   while (i < k) {

    j = abyte0[i];

    if ((j >= 48) && (j <= 57)) {

     j = (((j - 48) + 5) % 10) + 48;

    } else if ((j >= 65) && (j <= 90)) {

     j = (((j - 65) + 13) % 26) + 65;

    } else if ((j >= 97) && (j <= 122)) {

     j = (((j - 97) + 13) % 26) + 97;

    }

    ac[i] = (char) j;

    i++;

   }

   return String.valueOf(ac);

}

 

public MyEclipseGen() {

   super();

}

 

public static void main(String[] args) {

   try {

    System.out.println("pleaseinput register name:");

    BufferedReader reader = newBufferedReader(new InputStreamReader(

      System.in));

    String userId = null;

    userId = reader.readLine();

    MyEclipseGen myeclipsegen = new MyEclipseGen();

    String res = myeclipsegen.getSerial(userId,"5");

    System.out.println("Serial:" + res);

    reader.readLine();

   } catch (IOException ex) {

   }

}

}

注意:注册Myeclipse的时候要先断开网络,否则可能注册不成功!

注册方法:
window -> preferences -> myeclipse -> subscription

1.javaeye   wLR8ZO-655444-6867505309604395
2.csdn  pLR8ZO-655444-68675056726576869
3.myeclipse  zLR8ZO-655444-6867505361918604
4.hpjianhua  uLR8ZO-655444-68675056522179002
5.baidu  oLR8ZO-655444-6867505787393759
使用方法:点击MyEclipse菜单->Subscription Information

 

九spring2+struts2实现action间的跳转并给予成功提示

以添加功能为例:

YP_ckAction:struts2的action类,继承ActionSupport

centerFrameCK.jsp:中间页面,实现提示操作是否成功,并将请求转到另外一个action中

ckView.jsp:数据展示页面,添加成功后跳转到此页面显示新增数据 对应的action路径为:ck/cks

ckAdd.jsp:添加页面,点击添加按钮跳转到action的添加方法中处理数据 对应的action路径为:ck/addCk

注:因为考虑到安全的问题,此上页面都在WEB-INF下面

程序从点击添加按钮后,调用action中的添加方法开始:

YP_ckAction代码:

@Namespace("/ck")//命名action 的空间名

@Results({

@Result(name="addCk",location="/WEB-INF/content/zdb/ck/centerFrameCK.jsp"),

@Result(name="cks",location="/WEB-INF/content/zdb/ck/ckView.jsp")})

//spring2的@Result注解使用 name为下面用@Action注解的value值,location为执行过这个方法后,请求将要跳转的页面路径

@Component("ckAction")

public class YP_ckAction extends ActionSupport {

    private IYP_ckService ckService;   //仓库业务接口

    private CK ck;                     //仓库实体

    private boolean isOK;             //操作结果

 

    @Action(value="addCk")

    public String addCk(){

        System.out.println("PPPPPP");

        try{

            ckService.addCk(ck);

        }catch(Exceptione){

            isOK=false;

            e.getStackTrace();

        }

        isOK=true;

        return "addCk";

    }

    public IYP_ckService getCkService() {

        return ckService;

    }

    @Resource

//spring2的@Resource注解使用,实现将IYP_ckService类的 ckService对象传给此Action中的ckService属性

    public void setCkService(IYP_ckService ckService) {

        this.ckService =ckService;

    }

    public CK getCk() {

        return ck;

    }

    public void setCk(CK ck) {

        this.ck = ck;

    }

    public boolean getIsOK() {

        return isOK;

    }

    public void setIsOK(boolean isOK) {

        this.isOK = isOK;

    }

}

 

中间页面centerFrameCK.jsp:

<%@page pageEncoding="utf-8"%>

<%@taglib uri="/struts-tags"prefix="s"%>

<script>

<s:if test="isOK">

    alert("操作成功!");   

</s:if>

<s:else>   

    alert("操作失败!");

</s:else>  

window.parent.window.document.location.href="cks";//次处cks为请求ckView.jsp的action路径

</script>

 

添加页面ckAdd.jsp:

<s:form action="/ck/addCk">

 

    <table class="easyui-datagrid"width="100%" border="0">

         

        <tbody>

        <tr>

          <td colspan="2">仓库名称:<s:textfieldname="ck.ckmc" id="ckmc"></s:textfield></td>

        

        </tr>

         <tr>

          <td colspan="2" align="center">

           <div >

             <input type="submit" name="Submit"value=" 添加 "/>

           &nbsp;&nbsp;&nbsp;

             <input type="reset" name="Submit2"value=" 取消 " />

            </div>

           </td>

          </tr>

       </tbody>

    </table>

</s:form>

 

十 多种页面跳转的方法(效果参照:详细技术>页面跳转几种方法)

 

1,<title>点击按钮跳转的JS代码</title>

<INPUTTYPE="submit" value="转向主页" οnclick="location.href='' ">

 

2,﹤jsp:forward page="/utils/errorReporter.jsp"/﹥

 ﹤jsp:forwardpage="﹤%= someJavaExpression %﹥"/﹥ 

 

3,<input type="button" name="Submit3"value="删除" >

οnclick="javascript:document.form1.action='/ck/delCk';document.form1.submit();"/>

 

4,<input type="button" name="Submit2"value="增加"οnclick="javascript:window.location.href='页面路径或action路径'"/>

 

十一js 除去空格(效果参照:详细技术>js取出空格)

取出左右空格:ckmc=ckmc.replace(/(^\s*)|(\s*$)/g, "");

去除左空格:ckmc.replace(/(^s*)/g, "");

去除右空格:ckmc.replace(/(s*$)/g, "");

ckmc为要验证的字符串;

 

十二 Attribute value invalidfor tag property according to TLD错误(效果参照:详细技术>Attribute value invalid for tagproperty according to TLD)

 

<s:property/>中根本就没有name这个属性存在,所以我们根据它的tld文件会给我们提供一个错误的提示。

在<s:property default="" escape=""id="" value=""/>中只有如此的四个属性,它们分别所代表的意思是:

根据struts-2.1.6-all/struts-2.1.6/docs/docs/property.html 他们各自所代表的含义,以及所描述的内容。

名称 Required Default Evaluated Type Description

1:default false  false StringThe default value to be used if value     attribute is null

2:escape false true false Boolean Whether to escape HTML

3:value false <top of stack> false Object Value to be displayed

 

十三(多种方法)J2EE应用开发中与Oracle数据库的连接(效果参照:详细技术> J2EE应用开发中与Oracle数据库的连接)

import java.util.*;

import java.sql.*;

import javax.sql.*;

import java.io.*;

import oracle.jdbc.driver.*;

import javax.naming.*;   

 

/**

* 通过JdbcOdbc桥方式获得Oracle数据库连接

*/

public class DbConnection

{

 public DbConnection()

  {

  }

  /**

  * 获得Oracle数据库连接

  */

 public java.sql.Connection

 connectDbByJdbcOdbcBridge()

 { 

           java.sql.Connection conn=null; 

           try

           {

                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

                   con=DriverManager.getConnection

                   ("jdbc:odbc:ora199","sr","sr");

           }

           catch (Exception e)

           {

              System.out.println("ERROR:"+e.getMessage());

           }

           return conn;

  }

}

 

十四JDBC连接各种数据库方法(效果参照:详细技术> JDBC连接各种数据库方法)

 

1、Oracle8/8i/9i数据库(thin模式)

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

Stringurl="jdbc:oracle:thin:@localhost:1521:orcl";

//orcl为数据库的SID

Stringuser="test";

Stringpassword="test";

Connectionconn= DriverManager.getConnection(url,user,password);

2、DB2数据库

Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();

Stringurl="jdbc:db2://localhost:5000/sample";

//sample为你的数据库名

Stringuser="admin";

Stringpassword="";

Connectionconn= DriverManager.getConnection(url,user,password);

3、Sql Server7.0/2000数据库

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";

//mydb为数据库

Stringuser="sa";

Stringpassword="";

Connectionconn= DriverManager.getConnection(url,user,password);

4、Sybase数据库

Class.forName("com.sybase.jdbc.SybDriver").newInstance();

Stringurl =" jdbc:sybase:Tds:localhost:5007/myDB";

//myDB为你的数据库名

PropertiessysProps = System.getProperties();

SysProps.put("user","userid");

SysProps.put("password","user_password");

Connectionconn= DriverManager.getConnection(url, SysProps);

5、Informix数据库

Class.forName("com.informix.jdbc.IfxDriver").newInstance();

Stringurl =

"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;

user=testuser;password=testpassword";

//myDB为数据库名

Connectionconn= DriverManager.getConnection(url);

6、MySQL数据库

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

Stringurl ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicod

e=true&characterEncoding=8859_1"

//myDB为数据库名

Connectionconn= DriverManager.getConnection(url);

7、PostgreSQL数据库

Class.forName("org.postgresql.Driver").newInstance();

Stringurl ="jdbc:postgresql://localhost/myDB"

//myDB为数据库名

Stringuser="myuser";

Stringpassword="mypassword";

Connectionconn= DriverManager.getConnection(url,user,password);

 

十五 安装SYBASE遇到JVM问题

在安装SYBASE数据库时,遇到关于JVM问题,出错提示如下:
找不到合适的JVM,请使用选项-is:javahome<JAVAHOME DIR>再次。。。
操作系统为Win XP,JVM为1。5版本,我查了好几遍都没有问题的,这是为什么?

原因:安装路径上必须没有中文,否则无法识别JVM路径,原来我是放在桌面上安装的,后来剪切到f盘双击就行了

 

十六 在MyEclipse中修改项目访问地址

 

点中项目——》右击properties——》在左上方的文本框中输入【web】字样——》Context Root——》修改Web Context-root

 

十七myeclipse svn 修改用户名和密码(效果参照:详细技术> myeclipse svn 修改用户名和密码 - - JavaEye技术网站.htm)

由于在svn的界面中并没有为我们提供直接更换用户名密码的地方,所以一旦我们需要更换用户名的就需要自己想一些办法。

解决方案:

在Eclipse使用SVN的过程中大多数人往往习惯把访问SVN的用户名密码自动保存起来
以便下次自动使用,不要再次手工输入,但是有些时候需要变更密码或者用户名,
这时候怎么办?在网上查找后发现如下方法:

1. 查看你的Eclipse中使用的是什么SVNInterface
windows > preference > Team > SVN #SVN Interface

2. 如果是用的JavaHL, 找到以下目录并删除auth目录下的文件.
C:"Documents and Settings"[YourUserName]"ApplicationData"Subversion"

3. 如果你用的SVNKit, 找到以下目录并删除.keyring文件.
[eclipse]"configuration"org.eclipse.core.runtime

    主要有两种方法,一种是删除SVN客户端的账号配置文件;另外一种就是去SVN服务端将账号设置成不可用。

    具体步骤:

    1、通过删除SVN客户端的账号配置文件

    (1)找到我们使用的客户端配置文件,在window xp下面他们的位置在系统盘的 Documents andSettings\alex\Application Data\Subversion\auth\文件夹中,把里面的所有文件删除。

    (2)使用SVN更新或提交,使得客户端与服务端进行通讯,这样就会SVN客户端就要求我们输入新的用户名密码,输入我们的用户名密码就可以替换掉旧的用户名密码。

    2、通过修改SVN服务端账号配置文件,这部分需要SVN的管理员配合

    (1)找到服务端账号配置文件,这个文件位于SVN服务器的安装路径 config文件夹,打开并编辑passwd文件,删除或注释需要被替换的账号

    (2)在客户端使用SVN更新或提交,使得客户端与服务端进行通讯,这样就会SVN客户端就要求我们输入新的用户名密码,输入我们的用户名密码就可以替换掉旧的用户名密码。

 

十八Apache htpasswd管理SVN帐户(效果参照:详细技术> 用Apache htpasswd管理SVN帐户 - 三味书屋 - JavaEye技术网站.htm)

在apache安装目录下找到bin目录,该目录下有htpasswd执行文件

htpasswd -cmb userfile abc 123456
c  :create
m:md5
b :在命令行上输入密码
解释:创建userfile文件,增加用户名为abc的用户,密码为md5加密的123456

 

更新密码
htpasswd userfile abc

 

添加新用户
htpasswd userfile xyz

 

删除用户
htpasswd -D userfile xyz

 

生成.htaccess
htpasswd -c .htaccess user

 

十九 Java代码中的事务处理

Con为Connection类型的对象

con.setAutoCommit(false);//false是什么意思

false是con对象不自动连接

  ....

pStatement.executeUpdate();

con.commit();//commit是什么意思

提交

  con.setAutoCommit(true);//这里又来个true又是什么意思,自动提交

  try {

        sqlE.printStackTrace();

     }catch  (SQLException  sqlE)  {

       con.rollback();//当操作失败的时就回滚

    }

开启或关闭自动提交模式:

con.setAutoCommit(false) ;

con.setAutoCommit(true);

一旦关闭了自动提交,除非通过调用   commit()  显式地告诉它提交语句,否则无法提交   SQL   语句(即,数据库将不会被持久地更新)。在提交之前的任何时间,我们都可以调用   rollback()   回滚事务,并恢复最近的提交值(在尝试更新之前)。

二十MyEclipse去除所有调试断点

方法一:
在工作界面,点window菜单栏,选中Preperences,在General选项卡中的key节点下,
找到快捷键输入栏,在type filter text中输入remove,下面自能提示中就会出现Remove all breakpoints,我们要找的撤销功能键就是它了。
然后根据自己的需求改成自己想要的热键吧。

方法二:
在debug模式窗口中,点run菜单栏,在下拉的选项卡中,在底部我们可以看见Remove all breakpoints的选项,
只要我点击它,就会把我们当前调试的项目中的所有断点撤销。

 

二十一MyEclipse即时提示配置(配置文件位置:详细技术\MyEclipse快捷提示文件(压缩包))

打开Window ->Perferences,并依次展开 Java -> Editor-> ContentAssist,

最下面Auto-Activation

选项:auto activation triggers for java

按楼主说的,填入:几个随便的字符,例如“asdf”,点最下面的“OK”来保存设置。

然后打开 Eclipse的 File -> Export,在窗口中展开 General ->Perferences-->Export all然后点击NEXT。然后点击“Browse”选择任意的一个路径,保存配置文件,然后点击“Finish”。

 

用记事本打开刚才保存的那个配置文件(扩展文件名:*.epf),按“ctrl + F”,输入刚才设置的“asdf”,找到刚才字符串。把“asdf”修改为“abcdefghijklmnopqrstuvwxyz.”,然后保存,退出记事本。

打开Eclipse的 File -> Import 然后在打开的窗口里展开 General ->Perferences,点击NEXT,选中刚才修改过的配置文件,Finish。现在,再打开Window ->Perferences,并依次展开 Java -> Editor -> ContentAssist,会发现已经超过了4个字符,也就是说我们输入任何字母和“.”都会有代码提示了。

修改之后,默认是你输入某个字符200毫秒之后出现代码提示,如果出现输入很卡的情况,需要把提示延迟调高一些;如果你嫌它太慢,可以修改成更小的数字,不过数字改的越小,对系统性能的要求就越高,我设置的是50毫秒

二十二sybase初始安装形式为全部(fall)形式安装,但是断网之后,不能访问sybase数据库连接:java.net.NoRouteToHostException:No route to host

原因:Sybase数据库可以建多个服务,包括(本地服务和网络服务)
因为之前安装默认在本机建的服务是用网络IP建的,所以当断网之后就不能用数据库服务了,

解决:(联网)更改sybase服务端口,再重新启动sybase服务

二十三手动删除服务

手动删除

开始-运行regedit

 

  1). 注册表中在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下查找,找到后删除该键值

二十四Sybase数据库优化、备份、恢复等命令

    数据库优化:配置文件位置:详细技术\优化数据库语句.txt(视情况具体使用)

    备份命令:dumpdatabase performance to 'd:\20101128_aj.dat'

    恢复命令:

user master    

go

load database performancefrom "d:\20101130a.dat"

go

online database performancego

go

 

二十五将tomcat做成\系统服务或删除

创建服务:

C:\Documents andSettings\Administrator>e:-————E,跳转到tomcat所在的盘符

E:\>cd tomcat3\bin————,转到指定tomacat的bin目录下

E:\tomcat3\bin>service.batinstall tomact:

————service.bat,bin目录下的一个文件,inistall 关键字,tomcat3:服务名称,自定义

出现下面的信息,说明创建成功了,

Installing the service'tomact3' ...

Using CATALINA_HOME:    E:\tomcat3

Using CATALINA_BASE:    E:\tomcat3

Using JAVA_HOME:        D:\Program Files\Java\jdk1.6.0_17

Using JVM:              D:\ProgramFiles\Java\jdk1.6.0_17\jre\bin\server\jvm.dll

删除服务:

同样转到tomcat的bin目录先,在doc窗口中执行service.batremove tomcat3,tomcat3为

要删除的服务名称,

 

二十六chm文件(帮助文档据多)打不开

1.看看你的OS的语言设置 和chm文档的语言是不是一致的 ?如果不一致就会打不开得到上面这样的错误。比如如果下载的chm文档是中文的,那么到[控制面板]中看看那个"语言和区域"的【自定义】,打开看看【区域选项】 是不是中国,这个选项对一些软件还是有一些影响的。

2。运行里面输入 regsvr32 itss.dll

3.在命令行运行regsvr32 hhctrl.ocx

之后,点中文件右击选择打开方式。

 

或者

首先,在微软网站上下载hhupd.exe , 安装 hh.exe 后并运行。
然后运行“regsvr32 C:\windows\system\hhopen.ocx”等CHM相关文件。
如果还是不能正常打开CHM文档,就看看你的注册表中的“HKEY_CLASSES_ROOT\chm.file\shell\open\command”分支,如果分支下面除了默认项外,还多了一个“command”字符串,就把它删除,这样CHM文件就能正常打开了。

hhupd.exe已经下载好了,放在详细技术文件里面了

二十七json数据与JAVA数据的转换(效果参照:详细技术>json数据与JAVA数据的转换)

 

/** 

*从一个JSON 对象字符格式中得到一个java对象,形如:

* 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如

* 从一个JSON数组得到一个java对象数组,形如[{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...] 

* 从一个JSON数组得到一个java对象数组,形如:  [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...] 

* 从一个JSON数组得到一个java对象集合

* 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性

* 从json HASH表达式中获取一个map,该map支持嵌套功能  形如:{"id" : "johncon", "name" : "小强"}

* 从json数组中得到相应java数组

* 把数据对象转换成json字符串 

         * DTO对象形如:{"id" : idValue, "name" : nameValue, ...} 

         * 数组对象形如:[{}, {}, {}, ...] 

* map对象形如:{key1 : {"id" : idValue, "name" : nameValue, ...}, key2 : {}, ...} 

*设定日期转换格式

 */ 

二十八 sybase 查询前几名

SELECT* FROM dbo.ao_ZX set rowcount 5

用set rowcount 5 关键字

 

二十九java中获取当前系统时间,日期并格式化输出

一. 获取当前系统时间和日期并格式化输出:

import java.util.Date;
import java.text.SimpleDateFormat;

public class NowString {
   public static void main(String[] args){     
   SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");//设置日期格式
      System.out.println(df.format(new Date()));// newDate()为获取当前系统时间
   }
}

二. 在数据库里的日期只以年-月-日的方式输出,可以用下面两种方法:

1、用convert()转化函数:

String sqlst = "selectconvert(varchar(10),bookDate,126) as convertBookDate from roomBook wherebookDate  between '2007-4-10' and '2007-4-25'";

System.out.println(rs.getString("convertBookDate"));

2、利用SimpleDateFormat类:

先要输入两个java包:

import java.util.Date;
import java.text.SimpleDateFormat;

然后:

定义日期格式:SimpleDateFormat sdf = newSimpleDateFormat(yy-MM-dd);

sql语句为:String sqlStr ="select bookDate from roomBook where bookDate between '2007-4-10' and'2007-4-25'";

输出:

System.out.println(df.format(rs.getDate("bookDate")));

 

三十 java程序判断指定文件是否存在,存在删除,不存在新建

import="java.io.*"

String rootPath =realPath + "/kjda/people/img/";//项目相对路径

StringfileName = rootPath + saveFile;//saveFile 文件名

FilecheckFile = newFile(fileName);

if(checkFile.exists()){//文件存在删除

checkFile.delete();

//return;

}

FilefileDir = newFile(rootPath);

if(!fileDir.exists()){ //文件不存在新建

fileDir.mkdirs();

}

if(file.isDirectory()){//判断文件夹是否存在,存在

 System.out.println("the   dir   is   exits");

}else{      //不存在删除

 file.mkdir();

 System.out.println("have   made   a   dir   !"   );

}

三十一java文件输出流,写到.txt文件,如何实现换行

//      关键字: java txt文件 换行

//      java中写.txt文件,实现换行的几种方法:

//      1.使用java中的转义符"\r\n":

//      Java代码 

            String str="aaa";   

            str+="\r\n";   

 

//      这样在str后面就有换行了.

//      注意:\r,\n的顺序是不能够对换的,否则不能实现换行的效果.

//

//

//      BufferedWriter的newline()方法:

//      Java代码 

            FileOutputStream fos=new FileOutputStream("c;\\11.txt");   

            BufferedWriter bw=newBufferedWriter(fos);   

            bw.write("你好");   

            bw.newLine();   

            bw.write("java");   

            bw.newLine();   

 

 

//      使用System.getProperty()方法:

//      Java代码 

            String str2 = "aaa"+System.getProperty("line.separator");

三十二String.getBytes()和new String() 区别和关系

在Java中,String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如

 

byte[]b_gbk = "中".getBytes("GBK");

byte[]b_utf8 = "中".getBytes("UTF-8");

byte[]b_iso88591 = "中".getBytes("ISO8859-1");

 

将分别返回“中”这个汉字在GBK、UTF-8和ISO8859-1编码下的byte数组表示,此时b_gbk的长度为2,b_utf8的长度为3,b_iso88591的长度为1。

 

而与getBytes相对的,可以通过new String(byte[], decode)的方式来还原这个“中”字时,这个new String(byte[], decode)实际是使用decode指定的编码来将byte[]解析成字符串。

 

Strings_gbk = new String(b_gbk,"GBK");

Strings_utf8 = new String(b_utf8,"UTF-8");

Strings_iso88591 = new String(b_iso88591,"ISO8859-1");

 

通过打印s_gbk、s_utf8和s_iso88591,会发现,s_gbk和s_utf8都是“中”,而只有s_iso88591是一个不认识的字符,为什么使用ISO8859-1编码再组合之后,无法还原“中”字呢,其实原因很简单,因为ISO8859-1编码的编码表中,根本就没有包含汉字字符,当然也就无法通过"中".getBytes("ISO8859-1");来得到正确的“中”字在ISO8859-1中的编码值了,所以再通过new String()来还原就无从谈起了。

因此,通过String.getBytes(String decode)方法来得到byte[]时,一定要确定decode的编码表中确实存在String表示的码值,这样得到的byte[]数组才能正确被还原。有时候,为了让中文字符适应某些特殊要求(如httpheader头要求其内容必须为iso8859-1编码),可能会通过将中文字符按照字节方式来编码的情况,如String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1"),这样得到的s_iso8859-1字符串实际是三个在ISO8859-1中的字符,在将这些字符传递到目的地后,目的地程序再通过相反的方式

Strings_utf8 = newString(s_iso88591.getBytes("ISO8859-1"),"UTF-8")来得到正确的中文汉字“中”。这样就既保证了遵守协议规定、也支持中文。

 

三十三,myeclips8.5下安装svn插件。

在官网http://subclipse.tigris.org/下载了最新插件site-1.6.15.zip包,

 

解压后使用其features和plugins两个文件夹,参考网上做法,去掉其中一些包,myEclipse启动才不报错。

(1)MyEclipse 8.5根目录D:\ProgramFiles\Genuitec\MyEclipse 8.5下新建名为SVN的文件夹,将这两个文件夹放进去。(后边提供的SVN插件包就是我们要用到的SVN文件夹)

(2)在D:\Program Files\Genuitec\MyEclipse8.5\dropins 目录下建立一个SVN.link文件,其中内容为:

path=D:\\ProgramFiles\\Genuitec\\MyEclipse 8.5\\SVN 。也就是这个link指向刚才你建的文件夹。(后边提供的SVN-link.rar是这个link文件)

(3)重新启动MyEclipse。

 

三十四,教你如何设置电脑保护色来保护眼睛


像我们这样整天对着电脑,也应该注意一下。所以 就来向大家介绍一下怎样将电脑屏幕由刺眼的白色改为淡绿色,让大家在工作的同时,尽可能的将电脑对们眼睛的伤害降到最低!
   设置方法:打开控制面板中的"显示"选择外观(appearance)-高级(advanced),然后在项目(items)那栏选窗口(windows),再点颜色(color)-其它颜色(others),然后把Hue(色调)设为85,Sat(饱和度)设为90,Lum(亮度)设为205。然后单击添加到自定义颜色(Addtocustomcolors),按“确定”...一直确定。
  把窗口设成绿色之后,再来把IE的网页背景也变成养眼的绿色 :打开IE,点击工具(TOOLS),点INTERNET选项(INTERNETOPTIONS),点右下角的辅助功能(Assessibility),然后勾选不使用网页中指定的颜色。

三十五javascript 打开模态对话框,关闭后刷新父窗口 收藏

 将打开的对话框页面放到iframe中

父窗口JS脚本

functionsjcjbbj(pgffdm){

 var para="pgsjcjblrAction.do?action=editsjcjb&gzd_bh=<bean:writename='gzd_bh'/>&nsrsbh=<bean:writename='nsrsbh'/>&pgffdm="+pgffdm;

  varreturnvalue=showModalDialog("pgsjcjblr_iframe.html",para,"dialogWidth=770px;dialogHeight=470px;center=yes;help=no;scrollbars=no;status:false");

  location.reload();

 }

打开话框页面JS脚本

 function savesjcjb() {

  pgsjcjblrForm.strXML.value =Grid1.ExportToXMLString();

  window.close();

pgsjcjblrForm.action="pgsjcjblrAction.do?action=savesjcjb&gzd_bh=<bean:writename='gzd_bh'/>&nsrsbh=<bean:write name='nsrsbh'/>

&pgffdm=<bean:writename='pgffdm'/>";

  pgsjcjblrForm.method="POST";

  pgsjcjblrForm.submit();

  opener.location.reload();

}

三十六怎样用JS实现关闭当前窗口

大家都知道window.close()是用来关闭窗口的,而且ie和firefox都是支持的。

为了实现用户对浏览器的绝对控制,ie中用close关闭非open打开的窗口时回弹出一个对话框询问用户,怎么去掉这个框呢,请看下面的代码。

functionwinClose(){ window.top.opener = null; window.close(); }

在window.close之前加上window.top.opener = null就可以了。

firefox支持close,其实这是错误的,之所以window.close在firefox不能使用,是因为firefox默认不能关闭用户打开的网页,可以这样设置firefox。

打开firefox,在地址栏输入about:config

找到dom.allow_scripts_to_close_windows这项并改为true。

需要说的是在firefox中没有弹出对话框的麻烦。

<script>

functiona(){

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

window.opener= window;

window.close();

}

</script>

再运行这个就能在ff下关闭了。

后记:利用打开一个新窗口,然后关闭这个页面就可以实现关闭当前页面。

<ahref="c.html" target="_blank">ddddddddd</a>

c.html

<aref="javascript:window.open('','_parent','');window.close();">

CloseWindow</a>

 

 

三十七 JS无需确认直接关闭当前窗口

if("shihuan"== "shihuan"){

   alert("一个IP地址只允许打开一个浏览器访问本系统!");

   window.opener = null;

   window.open('', '_self');

   window.close();

}

适用于Chrome,IE6,Safari等几种浏览器的关闭方法:

varopened=window.open('about:blank','_self');

 opened.opener=null;

 opened.close();

JS关闭窗口或JS关闭页面的几种代码

//JS关闭窗口或JS关闭页面的几种代码

JS定时自动关闭窗口

<scriptlanguage="javascript">

<!--

functionclosewin(){

self.opener=null;

self.close();}

functionclock(){i=i-1

document.title="本窗口将在"+i+"秒后自动关闭!";

if(i>0)setTimeout("clock();",1000);

elseclosewin();}

var i=10

clock();

//-->

</script>

第二种:点击链接没有提示的JS关闭窗口

<ahref="javascript:self.close()" >关闭窗口</a>

第三种:窗口没有提示自动关闭的js代码

<scriptlanguage=javascript> 

<!-- 

this.window.opener= null; 

window.close(); 

//--> 

</script>

IE6-7 JS关闭窗口不提示的方法

方法一:

js 代码

functionCloseWin() //这个不会提示是否关闭浏览器   

{   

window.opener=null;   

//window.opener=top;   

window.open("","_self");   

window.close();   

}    

方法二:

open.html

js 代码

functionopen_complex_self() {   

  var obj_window = window.open('close.html','_self');   

  obj_window.opener = window;   

  obj_window.focus();   

}   

close.html

js 代码

window.close();

另附:

//普通带提示关闭

functioncloseie(){

window.close();

}

//关闭IE6不提示

functioncloseie6(){

window.opener=null;

window.close();

}

//关闭IE7不提示

functioncloseie7(){

window.open('','_top');

window.top.close();

}

 

三十八 window.open 打开窗口的参数详解

<SCRIPT LANGUAGE="javascript">
  <!--
  window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行
  -->
  </SCRIPT>
  参数解释:
  <SCRIPT LANGUAGE="javascript"> js脚本开始;
  window.open 弹出新窗口的命令;
  'page.html' 弹出窗口的文件名;
  'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
  height=100 窗口高度;
  width=400 窗口宽度;
  top=0 窗口距离屏幕上方的象素值;
  left=0 窗口距离屏幕左侧的象素值;
  toolbar=no 是否显示工具栏,yes为显示;
  menubar,scrollbars 表示菜单栏和滚动栏。
  resizable=no 是否允许改变窗口大小,yes为允许;
  location=no 是否显示地址栏,yes为允许
    fullscreen=yes (no) 是否全屏显示
  status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许
 </SCRIPT> js脚本结束


如果加上fullscreen=yes 的话,弹出的浏览器是全屏状态,相当于按下快捷键F12,不是我想要的情况,下面的代码可以完成弹出窗口的最大化:
<script type="text/javascript">
  var fulls = "left=0,screenX=0,top=0,screenY=0,scrollbars=1";    //定义弹出窗口的参数
  if (window.screen) {
     var ah = screen.availHeight - 30;
     var aw = screen.availWidth - 10;
     fulls += ",height=" + ah;
     fulls += ",innerHeight=" + ah;
     fulls += ",width=" + aw;
     fulls += ",innerWidth=" + aw;
     fulls += ",resizable"
} else {
     fulls += ",resizable"; // 对于不支持screen属性的浏览器,可以手工进行最大化。 manually
}
function openNewWindow(url,name){
  window.open(url,name,fulls);
}
</script>
然后在JSP页面中就可以直接调用openNewWindow()来打开页面了。

三十九 idstinct的用法——sql消除重复值

SQL SELECT DISTINCT 语句 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 关键词 DISTINCT 用于返回唯一不同的值。语法: SELECT DISTINCT 列名称 FROM 表名称使用 DISTINCT 关键

Eg:distinct tableName.rowName,

四十,MyEclipse/eclipse不能自动编译成.class文件的解决方案

1,配置文件出错,如web.xml文件中配置的属性没有加载完全。操作:像这种配置错误,控制台会给予提示,只需根据提示内容,锁定错误节点进行修改就行。如控制台提示listener文件加载异常,我上次遇到的就是这个错误,我重新在web.xml的design中配置一下listener就好了。

2,自动编译功能没有打开。操作:选上project->build automatically 即表示自动编译功能被打开了。

3,工程下.classpath文件配置错误。

 操作:确保<classpathentry kind="output" path="web/WEB-INF/classes"/>指向的路径是否正确

4,项目中涉及到的jar包加载错误。操作:再打开自动编译的情况下,重新在java Buile pathx里导入一遍jar包。

5,java运行环境出错。操作:检查一下项目涉及到的tomcat、jdk是否正常,最好将tomcat、jdk都重新部署配置一下。

 

四十一eclipse 中UTF-8设置

1.windows->Preferences   打开"首选项"对话框;

2.然后,general->Workspace,右 侧Text file encoding,选择Other,改变为UTF-8。

3.Web->打开,把CSS、HTML、JSP、JavaScript、XML等设置为UTF-8。

或在这里更改:

general->ContentTypes, 右侧Context Types树,点开Text,选择Java Source File,在下面的Default

encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。其他如果需要更改,方法一样。

四十二删除鼠标右击菜单

1. 单击Windows的“开始”菜单,单击“运行”,在“打开”框中键入“regedit”,
单击“确定”按钮,打开“注册表编辑器”窗口。

2. 2. 展开“HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers”分支,在其下找到要删除的
无用项,然后右键单击该项,再单击“删除”将其删除即可清除右键菜单中的对应选项。

3. 对于仅在文件夹右键菜单中才有的选项,可到

HKEY_CLASSES_ROOT\Directory\shellHKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers分支下查找。

有时HKEY_CLASSES_ROOT\Folder\shell和

HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers

分支下也有右键菜单中的选项

 

 

四十三更改eclipse工作空间的路径?

 

有2中方法可以改变工作空间的路径设置:

1. 启动Eclipse/MyEclipse后, 打开"Window -> Preferences -> General -> Workspace", 点Workspace页上的"Startup andShutdown", 然后勾选"Startup and Shutdown"页中的"Prompt for workspace on startup";

 

2. 用记事本打开"/eclipse/configuration/.settings/org.eclipse.ui.ide.prefs",将"SHOW_WORKSPACE_SELECTION_DIALOG"的值改为"true";

P.S.: "RECENT_WORKSPACES"的值表示设置过的workspace绝对路径. 第一个路径是当前设定的路径, 向后依次之前曾设置过的. 各路径之间用"/n"分隔.


 SHOW_WORKSPACE_SELECTION_DIALOG=false

eclipse.preferences.version=1
RECENT_WORKSPACES=D\:\\Myproject

将其中的SHOW_WORKSPACE_SELECTION_DIALOG=由false改成true。其他项都不要改,保存。

重新启动Eclipse,哈哈,系统启动后提示你选择工作目录,这个时候就可以选择新的工作目录了。真是会者不难啊。

运行后的配置文件发生了变化:

#Mon Nov 10 13:40:40 CST 2008
RECENT_WORKSPACES_PROTOCOL=3
MAX_RECENT_WORKSPACES=
5
SHOW_WORKSPACE_SELECTION_DIALOG=true
eclipse.preferences.version=1
RECENT_WORKSPACES=
F\:\\AndroidBooks\nF:\\AndroidBooks\sample

四十四 iframe页面里的js调用父级页面js函数的解决方法

iframe页面里的js调用父级页面js函数的解决方法

1、假设当前页面为a.html, iframe的src页面为b.html,其代码如下:

viewsourceprint?

<html> 

<head> 

<title>iframe页面里的js调用父级页面js函数的demo</title> 

</head> 

<body> 

<p>iframe页面里的js调用父级页面js函数的demo</p> 

<iframeframeborder="0" width="0" height="0"name="test" src="b.html"></iframe> 

</body> 

<scripttype="text/javascript"> 

exec_success_callback(){} 

</script> 

</html>

2、b.html里的页面元素为:

viewsourceprint?

<scripttype='text/javascript'> 

window.parent.document.getElementById('父级页面ID').innerHTML = '内容'; 

window.parent.exec_success_callback(); 

</script>

说明:

1、通过 window.parent.document.getElementById(‘父级页面ID’).innerHTML = ‘内容’  基本可以达到控制父级页面的元素

2、window.parent.login_success_callback()  可以调用父级页面的Js函数来处理一些事情

3、关键是用到了 window.parent

四十五 div实现模态窗体(效果参照:详细技术>div实现模态窗体.html)

<html> 

<head> 

   <title>两个层的特效</title> 

   <style type="text/css"> 

       *{ 

           margin:0;padding:0; 

       } 

   </style> 

</head> 

<body>

<divclass="cecmbody" id="cecmpolicy"> 

   <div class="leftClass"> 

          <p>测试</p> 

    <input type="button"value="点击这里"οnclick="sAlert('测试效果');" /> 

 

   </div> 

   <divclass="rightClass"> 

   </div> 

</div> 

     <script type="text/javascript"language="javascript"> 

    function sAlert(str){ 

    var msgw,msgh,bordercolor; 

    msgw=400;//提示窗口的宽度 

    msgh=100;//提示窗口的高度 

    titleheight=25 //提示窗口标题高度 

    bordercolor="#336699";//提示窗口的边框颜色 

    titlecolor="#99CCFF";//提示窗口的标题颜色 

 

    var sWidth,sHeight; 

    sWidth=document.body.offsetWidth; 

    sHeight=screen.height; 

    varbgObj=document.createElement("div"); 

    bgObj.setAttribute('id','bgDiv'); 

   bgObj.style.position="absolute"; 

    bgObj.style.top="0"; 

   bgObj.style.background="#777"; 

   bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha

(style=3,opacity=25,finishOpacity=75"; 

    bgObj.style.opacity="0.6"; 

    bgObj.style.left="0"; 

    bgObj.style.width=sWidth +"px"; 

    bgObj.style.height=sHeight +"px"; 

    bgObj.style.zIndex ="10000"; 

    document.body.appendChild(bgObj); 

 

    varmsgObj=document.createElement("div") 

   msgObj.setAttribute("id","msgDiv"); 

   msgObj.setAttribute("align","center"); 

    msgObj.style.background="white"; 

    msgObj.style.border="1px solid "+ bordercolor; 

    msgObj.style.position ="absolute"; 

    msgObj.style.left = "50%"; 

    msgObj.style.top = "50%"; 

    msgObj.style.font="12px/1.6em Verdana,Geneva, Arial, Helvetica, sans-serif"; 

    msgObj.style.marginLeft ="-225px" ; 

    msgObj.style.marginTop =-75+document.documentElement.scrollTop+"px";

    msgObj.style.width = msgw +"px"; 

    msgObj.style.height =msgh +"px"; 

    msgObj.style.textAlign ="center"; 

    msgObj.style.lineHeight="25px"; 

    msgObj.style.zIndex ="10001"; 

 

    vartitle=document.createElement("h4"); 

   title.setAttribute("id","msgTitle"); 

   title.setAttribute("align","right"); 

    title.style.margin="0"; 

    title.style.padding="3px"; 

    title.style.background=bordercolor; 

   title.style.filter="progid:DXImageTransform.Microsoft.Alpha(startX=20,startY=20,finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);"; 

     title.style.opacity="0.75"; 

      title.style.border="1px solid "+ bordercolor; 

      title.style.height="18px"; 

      title.style.font="12px Verdana,Geneva, Arial, Helvetica, sans-serif"; 

      title.style.color="white"; 

     title.style.cursor="pointer"; 

      title.innerHTML="关闭"; 

      title.οnclick=function(){ 

          document.body.removeChild(bgObj); 

                document.getElementById("msgDiv").removeChild(title); 

                document.body.removeChild(msgObj); 

                 } 

      document.body.appendChild(msgObj); 

     document.getElementById("msgDiv").appendChild(title); 

      vartxt=document.createElement("p"); 

      txt.style.margin="1em 0" 

     txt.setAttribute("id","msgTxt"); 

      txt.innerHTML=str; 

            document.getElementById("msgDiv").appendChild(txt); 

             } 

   </script> 

</body> 

</html> 

 

 

四十六 使flash至于其它div的最底层

我们经常会在网页上面放置一些flash动画,有很多朋友会遇到这样的问题,那就是如果网页是多层的,那flash总是显示在顶层,如何解决这个问题,其实很简单
1、在<object>标签中添加一个样式style="z-index:-100;",声明这个对象是位于网页层次的底层;
2、在flash的属性中添加一条:<param name="wmode" value="opaque" />;
例如:
<object id="Shockwaveflash9" classid="clsid:D27CDB6E-AE6D-11000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"
height="80" title="瘦脸" viewastext="" width="750" style="z-index:-10;">
< param name="movie" value="ad/ad3_1.swf" />
< param name="quality" value="high" />
< param name="wmode" value="opaque" />
< /object>

今天碰到个问题,页面实施拖拽效果,但是要双击按钮才能执行JS,原因是flash层展示权限高,可以添加this.addParam('wmode', 'Opaque');使flash处于底层

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值