- 浏览: 26744 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
caiyingying234:
前台性能测试:
1、日志:
console.log();
...
自己的一些笔记 -
caiyingying234:
Js编码函数区别
...
自己的一些笔记 -
caiyingying234:
//IE的情况
if(isIE()){
ifrm.att ...
自己的一些笔记 -
caiyingying234:
//解决样式丢失问题
var tempStyle = ...
自己的一些笔记 -
caiyingying234:
29、//对收到的信息过滤所有的event
function ...
自己的一些笔记
1、$("#id").html("你好!");
2、jquery对象和dom对象
jquery对象-->dom对象 jquery对象是个数组对象 可以使用jquery库的特有方法
var $cr = $("#cr"); var cr = $cr[0];
var $cr = $("#cr"); var cr = $cr.get(0);
dom对象-->jquery对象
var cr = document.getElementById("cr");
var $cr = $(cr);
3、低级错误啊:
取一个节点的html是忘记加()
$("#id").html();
4、低级错误2
所有的jquery代码必须写在下面的
$(document).ready(function() {..some code...} );
$().ready(function() {..some code...} );
$(function() {..some code...} );
5、var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号。
6、prev()前一个同辈节点
next()后一个同辈节点
slice(start,end) 筛选
parent()父节点
children()子节点
7、IE 和 FF下的radio
$("input[name='radioName'][checked]").val();
但是FF取不到你点击另外一个后的值,只能取到你设置的默认的值
可以这样写
$("input[name='radioName']:checked").val();
demo里面可以,不知道为什么工程里面就不行了
var searchType = $('input[type=radio]:checked').val();
这样子工程里面可以的
8、display : none;隐藏属性
display :block 是块状显示 在firefox中会影响布
9、 jquery 赋值语句很少? 都是譬如 $("#222").attr("value","asfs");
10、appendto 把所有匹配的元素追加到另一个指定的元素元素集合中。
所有匹配的元素肯定就没有了
评论
1、日志:
console.log();
console.debug();
console.warn();
console.error();
console.info();
2、性能的三种方法:
一、点击概况,再次点击 会收集这期间的概况
二、代码中写 console.profile();
console.profileEnd();
也可以在命令行输入 profile
三、在代码中输入:
console.profile('Measuring time');
doSomething();
console.profileEnd();
会打印出相应的详细信息
3、IE中可以使用
<SCRIPT>
var bResult;
// 选中要剪切的文本。在剪切事件中文本选中区的尾随空格导致剪
// 切选快捷菜单项目保持无效。
function fnLoad() {
var r = document.body.createTextRange();
r.findText(oSource.innerText);
r.select();
}
// 启用剪切快捷菜单项目,该项目在 DIV 上时默认为无效
function fnBeforeCut() {
event.returnValue = false;
}
// 以文本格式给 window.clipboardData 对象赋予数据。
// 将 setData 方法的结果 (Boolean) 显示在下面的输入框内。
function fnCut(){
event.returnValue = false;
bResult = window.clipboardData.setData("Text",oSource.innerText);
oSource.innerText = "";
tText.innerText += bResult;
}
// 启用粘贴快捷菜单项目,该项目在 DIV 上时默认也为无效
function fnBeforePaste() {
event.returnValue = false;
}
// 在 onpaste 中取消 returnValue 以便输入文本,该操作有默认
// 的行为。
function fnPaste() {
event.returnValue = false;
oTarget.innerText = window.clipboardData.getData("Text");
}
</SCRIPT>
</HEAD>
<BODY onload="fnLoad()" TOPMARGIN=0 LEFTMARGIN=0 BGPROPERTIES="fixed" BGCOLOR="#FFFFFF"
LINK="#000000" VLINK="#808080" ALINK="#000000">
<DIV CLASS="clsSource" ID="oSource" onbeforecut="fnBeforeCut()" oncut="fnCut()">选中并剪切此文本</DIV>
<DIV CLASS="clsTarget" ID="oTarget" onbeforepaste="fnBeforePaste()" onpaste="fnPaste()">将文本粘贴在这里</DIV><BR>
<SPAN CLASS="clsData">setData 结果:</SPAN>
<INPUT CLASS="clsText" ID="tText" TYPE="text" READONLY VALUE="" SIZE="6" TABINDEX="-1">
</BODY>
——特殊符号处理
在web开发中经常遇到特殊符号处理的问题,如处理不好,常常引起异常,在前台Js中表现尤为明显。在开发中处理特殊符号时,用到并总结了Js几个特殊符号处理函数的区别。对其了解还是非常有意义的,特总结如下:
Js对文字进行编码涉及3个函数:escape, encodeURI, encodeURIComponent
相应3个解码函数:unescape, decodeURI, decodeURIComponent
一、函数简介
1、encodeURIComponent
传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如: <script language= "javascript "> document.write( ' <a href= "http://passport.baidu.com/?logout&aid=7&u= +encodeURIComponent( "http://cang.baidu.com/bruce42 ")+ "> 退出 </a> '); </script>
2、encodeURI
进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI( "http://cang.baidu.com/do/s?word=百度&ct=21 ");
3、escape
js使用数据时可以使用escape
例如:收藏中history纪录。
二、区别
escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
处理符号范围
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&, ',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
三、总结
以上3个函数,编码最多的是escape,但仍有7个符号没有编码,在BNB Agent开发中采用人工替换编码的方式实现,解决了不少问题。这种处理方式之所以可行,是解码函数unescape, decodeURI, decodeURIComponent对所有字符均可解码。
在后台Java处理中,采用同样原理实现。
附:7个特殊符号编码对照表
@ "%40"
* "%2A"
+ "%2B"
- "%2D"
. "%2E"
/ "%2F"
_ "%5F"
if(isIE()){
ifrm.attachEvent("onreadystatechange",function(){
if(ifrm.contentWindow.document.readyState == 'complete'){
ifrm.contentWindow.document.documentElement.attachEvent("onpaste", function(e){return pasteClipboardData(ifrm.id,e);});
}
});
}
else{
ifrm.addEventListener("load",function(){
ifrm.contentWindow.document.addEventListener("paste", function(e){return pasteClipboardData(ifrm.id,e);},false);
}
},false);
}
var tempStyle = "";
//存在多个<style>标签时,提取样式
var tempHtmlProtect = originalText;
while (-1 != tempHtmlProtect.indexOf("<style>")
&& -1 != tempHtmlProtect.indexOf("</style>"))
{
var tStyle = tempHtmlProtect.substring(tempHtmlProtect.indexOf("<style>"), tempHtmlProtect.indexOf("</style>") +;
tempStyle = tempStyle + tStyle;
tempHtmlProtect = tempHtmlProtect.replace(tStyle, "");
}
//解决object注入
//originalText = originalText.replace(/<object(.|\n)*\/object>\s*/ig, "<!-- -->");
originalText = originalText.replace(/<object/ig, "<!--<object");
originalText = originalText.replace(/<\/object>/ig, "</object>-->");
//解决iframe注入
//originalText = originalText.replace(/<iframe(.|\n)*\/iframe>\s*/ig, "<!-- -->");
originalText = originalText.replace(/<iframe/ig, "<!--<iframe");
originalText = originalText.replace(/<\/iframe>/ig, "</iframe>-->");
//解决script注入
//originalText = originalText.replace(/<script(.|\n)*\/script>\s*/ig, "");
originalText = originalText.replace(/<scrip/ig, "<!--<script");
originalText = originalText.replace(/<\/script>/ig, "</script>-->");
//过滤复制的副本中jquery标识
originalText = originalText.replace(/ jQuery\d+="(?:\d+|null)"/g, "");
var divTemp = document.createElement("div");
divTemp.innerHTML = String(originalText);
//强制链接在新窗口中打开
//divTemp.innerHTML = divTemp.innerHTML.replace(/\<a/i, "<A target='_blank'");
//divTemp.innerHTML = Dvbbs_correctUrl(String(divTemp.innerHTML));
//发送内容中的input元素设置为只读 type=submit 改为button显示
for (var i = 0; i < divTemp.getElementsByTagName("input").length; i++)
{
divTemp.getElementsByTagName("input")[i].setAttribute("readOnly","readOnly");
if ("submit" == divTemp.getElementsByTagName("input")[i].getAttribute("type"))
{
var tempInputObj = divTemp.getElementsByTagName("input")[i];
tempInputObj.outerHTML = tempInputObj.outerHTML.replace(/submit/g, "button");
}
}
//过滤链接在新窗口中打开
for (var i = 0; i < divTemp.getElementsByTagName("a").length; i++)
{
divTemp.getElementsByTagName("a")[i].target = "_blank";
}
function filterProps(originalText)
{
var tempStyle = "";
var divTemp = document.createElement("div");
divTemp.innerHTML = String(originalText);
//清除DOM和脚本之间的引用
var clearElementProps = [
'onsubmit',
'onchange',
'onabort',
'onactivate',
'onafterupdate',
'onbeforeactivate',
'onbeforecopy',
'onafterprint',
'onbeforecut',
'onbeforedeactivate',
'onbeforeeditfocus',
'onbeforepaste',
'onbeforeprint',
'onbeforeupdate',
'onbeforeunload',
'onblur',
'onbounce',
'oncellchange',
'onclick',
'oncontextmenu',
'oncontrolselect',
'oncopy',
'oncut',
'ondataavailable',
'ondatasetchanged',
'ondatasetcomplete',
'ondblclick',
'ondeactivate',
'ondrag',
'ondragend',
'ondragenter',
'ondragleave',
'ondragover',
'ondragstart',
'ondrop',
'onerror',
'onfinish',
'onerrorupdate',
'onfilterchange',
'onfocus',
'onfocusin',
'onfocusout',
'onhelp',
'onkeydown',
'onkeypress',
'onkeyup',
'onload',
'onstart',
'onlayoutcomplete',
'onlosecapture',
'onmousedown',
'onmouseenter',
'onmouseleave',
'onmousemove',
'onmouseout',
'onmouseover',
'onmouseup',
'onmousewheel',
'onmove',
'onmoveend',
'onmovestart',
'onpaste',
'onreset',
'onpropertychange',
'onrowenter',
'onrowexit',
'onrowsdelete',
'onrowsinserted',
'onreadystatechange',
'onresize',
'onresizeend',
'onresizestart',
'onscroll',
'onselectionchange',
'onselectstart',
'onselect',
'onstop',
'onunload',
'ontimeerror'
];
//递归遍历dom节点
function filter(n)
{
//如果节点是元素节点
if(n.nodeType == 1){
for (var c = 0; c < clearElementProps.length; c++)
{
var tempEvent = clearElementProps[c];
if (null != n.getAttribute(tempEvent))
{
n.setAttribute(tempEvent,"");
}
}
}
var tempChildren = n.childNodes;
if(tempChildren.length > 0){
for(var i=0;i<tempChildren.length;i++){
filter(tempChildren[i])
}
}
return ;
}
//递归开始
filter(divTemp);
//发送内容中的input元素设置为只读 type=submit 改为button显示
for (var i = 0; i < divTemp.getElementsByTagName("input").length; i++)
{
divTemp.getElementsByTagName("input")[i].setAttribute("readOnly","readOnly");
if ("submit" == divTemp.getElementsByTagName("input")[i].getAttribute("type"))
{
var tempInputObj = divTemp.getElementsByTagName("input")[i];
tempInputObj.outerHTML = tempInputObj.outerHTML.replace(/submit/g, "button");
}
}
var strRtn = tempStyle + String(divTemp.innerHTML);
return strRtn;
}
function getElements()
{
var temp = document.getElementById("testDiv");
var x=document.getElementById("testDiv").getElementsByTagName("*");
for(var i=0;i<x.length;i++){
alert(x[i].name);
if(x[i].type == "text"){
x[i].name = x[i].name +"_"+i;
}
alert(x[i].name);
}
}
SQL>select userenv(‘language’) from dual;
2、tnsnames.ora详解~~还少点,关于外部过程代理程序的
分类: oracle 2011-07-27 20:37 18人阅读 评论(0) 收藏 举报
# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
SUN = # 网络服务名,客户端会通过相应的网络服务名连接到目标数据库
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
# TCP是连接协议,HOST 客户端要连接的目标主机地址,PORT目标数据库的监听端口号
)
(CONNECT_DATA =
(SERVER = DEDICATED)
# 连接类型,DEDICATED 专用服务器模式 为每个用户的连接使用专用的服务进程,
# SHARED 共享服务器模式 ,dispatcher进程把用户连接请求放到 request queue,
# 然后为连接请求分配shared process,请求完成后会被服务进程放到response queue,
# dispatcher在把结果发给用户请求。
# 注意即使在SHARED SERVER模式下,每个用户请求也使用自己独立的PGA,所以PGA导致
# SHARED SERVER的优势减弱。DEDICATED和SHARED模式是可以共存的,因为STARTUP和
# SHUTDOWN必须在DEDICATED模式下运行
(SERVICE_NAME = sun)
# SERVICE_NAME 服务名是目标数据库的SID
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
# IPC 进程间通信协议,就是说是本机之间的进程间的通信,调用本地连接
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
26、tomcat启动时候闪了一下,启动不了的问题:
原因可能是:jdk没有配置好
配置JAVA_HOME
JAVA_HOME指向应该是jdk的路径,而不应该是jre的路径
27、oracle监听启不来
今天出现了个小问题:启动Oracle 10g的监听服务后,监听自动关闭。
上网查询原因:是因为修改了计算机名称,导致出现这个错误,
把目录{Oracle}/product/10.2.0/db_1/network/ADMIN下的文件listener.ora内容进行修改,
将“HOST”修改成现在的机器名,然后重新启动监听服务,Oracle正常使用
function istaobaoValidLength(str , rule)
{
var p1 = new RegExp('%u..', 'g');
var p2 = new RegExp('%.', 'g');
var strSize = escape(str).replace(p1, '').replace(p2, '').length;
if(strSize>rule){
return false;
}
return true;
}
function istaobaoValidLength(str , rule)
{
var p1 = new RegExp('%u..', 'g');
var p2 = new RegExp('%.', 'g');
var strSize = escape(str).replace(p1, '').replace(p2, '').length;
if(strSize>rule){
return false;
}
return true;
}
function checkNumValid(evt)
{
var keycode = evt.keyCode||event.charCode;
//只允许输入数字和符号
if(window.event)//IE
{
if (evt.shiftKey)
{
if (51 == keycode //shift + 3 = #
|| 56 == keycode //shift + 8 = *
|| keycode == 35 //end
|| keycode == 36 //home
|| keycode == 37 //←
|| keycode == 39 //→
)
{
return true;
}
}
else if ((keycode >= 48 && keycode <= 57)
|| (keycode >= 96 && keycode <= 105)
|| keycode == 46 //delete
|| keycode == 8 //backspace
|| keycode == 9 //tab键
|| keycode == 35 //end
|| keycode == 36 //home
|| keycode == 37 //←
|| keycode == 39 //→
|| keycode == 106 //小键盘 *
)
{
return true;
}
}
evt.returnValue = false;
return false;
}
19、最近的工作中,接触JS的比较多,碰到个文本框不能拖动选择的问题
发现原来是增加了一个函数
document.onselectstart = function(event) {return false};
那么页面上的所有的选择事件将失效。
譬如我们可以指定哪些是不能选定的
document.onselectstart= function(event){return test()};
function test(){
var the = event.srcElement ;
if( !( ( the.tagName== "INPUT" && the.type.toLowerCase() == "text" ) || the.tagName== "TEXTAREA" ) )
{
return false;
}
return true ;
}
20、
20-1、获得浏览器的locale
Locale locale = ServletActionContext.getRequest().getLocale();
20-2、禁用回车键
onkeydown="if(window.event.keyCode == 13)return false;"
20-3、限制不可以输入字符
onkeypress="if (!/[0-9#*\/\-]/.test(String.fromCharCode(event.keyCode)))event.keyCode=0"
onkeyup="this.value=this.value.replace(/[^\d#*\/\-]/g,'')"
20-4、Eclipse 中更改默认编码
Preferences--General--Content Types
$("<span title='replaceAll'>tao_guo_rong@163.com</span>").replaceAll("#Span2");
12、siblings()取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合。可以用可选的表达式进行筛选
13、动态的效果:
slideUp(speed,[callback])
$("p").slideUp("fast",function(){
alert("Animation Done.");
});
slideDown(speed,[callback])
show(speed,[callback])
hide(speed,[callback])
fadeIn(speed,[callback])
fadeOut(speed,[callback])
fadeTo(speed, opacity, [callback]) opacity 调整的不透明度(0-10)
animate()自定义动画
14、判读对象是否是隐藏的 if($("#main-fl").is(":hidden")) { }
15、vertical-align 属性设置元素的垂直对齐方式。
可能的值
值 描述
baseline 默认。元素放置在父元素的基线上。
sub 垂直对齐文本的下标。
super 垂直对齐文本的上标
top 把元素的顶端与行中最高元素的顶端对齐
text-top 把元素的顶端与父元素字体的顶端对齐
middle 把此元素放置在父元素的中部。
bottom 把元素的顶端与行中最低的元素的顶端对齐。
text-bottom 把元素的底端与父元素字体的底端对齐。
length
% 使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。
inherit 规定应该从父元素继承 vertical-align 属性的值。
16、tr不用设置width
td float属性无用
17、 jsp验证码刷新
JSPJavaScriptIDEA.Js代码
1. 直接点击验证码,刷新验证码
具体代码
Javascript的一个函数
<script language="javascript">
/*验证码上刷新 */
function chk_image(){
var img = document.getElementById("pic");
img.src = "image.jsp?" + Math.random();
}
</script>
/*图片调用 */
<img id="pic" border=1 src="image.jsp?Math.random();" onclick="return chk_image();" alt="30">
2. 通过点击文字链接,刷新验证码
<script language="javascript">
/*在文字上使验证码刷新 */
function reloadImage(url)
{
var img = document.getElementById("pic");
img.src = url+"?" + Math.random();
}
</script>
<img id=”pic” src=”image.jsp”>
<a href="javascript:reloadImage(''image.jsp'');">验证码看不清,重新获得</a>
相关推荐
XML自己写的一些笔记
通过深入研究《赖世雄中级讲课笔记》,学习者可以系统地掌握中级英语的知识,逐步提升自己的英语水平。这份资料不仅是个人自学的好助手,也是教师进行课堂教学的宝贵资源。对于有志于提高英语能力的人来说,它是不容...
Java学习心得笔记主要涵盖了几大知识点,包括运算符、Integer类、引用类型、数组、多维数组、字符串类。下面将详细阐述这些内容。 1. **运算符**: 在Java中,运算符包括移位运算符。`是左移运算符,将二进制数向...
3 分享实用代码:每篇笔记都附带了一些实用的代码示例,这些示例不仅是我学习的成果,也可以作为你学习的参考。 4 持续学习进步:算法学习是一条持续的道路,我会不断地更新笔记内容,记录自己的学习进步,与你一起...
在当前的IT行业中,代码笔记管理变得越来越重要,特别是对于开发者来说,能够高效地管理和分享自己的代码片段是日常工作的重要一环。有道云笔记作为一款流行的云笔记软件,为用户提供了方便的代码存储和分享平台。而...
在这份笔记的最后,作者还提供了一些免费资源,包括《算法基础》、《快速刷完67道剑指offer系列》与《精选力扣300+道算法题》系列等。 这份笔记是一份非常有价值的学习资源,对于计算机相关专业的学生和从业者来说...
为此,一款名为"学习软件"的应用应运而生,它旨在帮助用户记录并整理自己的学习笔记,将知识体系化,助力个人学习进步。这款软件虽然目前尚处于发展阶段,但其核心功能已经初具雏形,为用户提供了便捷的记录工具。 ...
我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你有什么不理解的地方,可以在Issues面板...
kloxo一些操作笔记,都是自己工作中的一些操作啦。
它不仅可以在笔记本电脑上使用,而且得益于其跨平台的特性,用户还能方便地在手机等移动设备上同步和访问自己的笔记内容,实现了无缝衔接的多设备使用体验。 这款笔记本软件的核心功能包括: 1. **文本编辑**:...
css的一些自己的一些笔记
云笔记小程序是一种基于微信小程序平台的应用,它提供了新建、查询和统计笔记的功能,旨在帮助开发者,特别是初学者,快速搭建自己的简易笔记应用。通过掌握这款源码,你可以深入了解小程序的开发流程,学习如何实现...
JBPM工作流笔记,自己做的一些笔记,JBMP初学
7. 学习与使用技巧:有效利用云笔记,需要掌握一些技巧,例如合理使用标签和笔记本进行分类,利用搜索功能快速找到笔记,以及设置提醒和共享功能进行协同工作。 8. 数据迁移与导出:为了防止平台依赖,用户应了解...
描述中的“比有道笔记什么的更加方便快捷”表明这款软件可能在易用性和速度方面优于市场上的一些知名笔记应用,如有道笔记,它可能提供了更简洁的操作界面和更快的响应时间。 标签“可以自行分类 文档归纳总结”...
6. **JSON文件**:可能包含一些配置数据或初始数据,如默认笔记模板,用户设置等。 7. **图标库或框架**:如Font Awesome或Bootstrap,这些可以帮助快速构建美观的界面。 8. **构建脚本或配置文件**:如Gulp、...
本人学习vue时候的学习笔记,以及工作共遇到的我认为需要记录的一些知识点
6. **实验实践**:为了更好地理解和应用理论知识,笔记可能会包含一些模拟实验或实际设备配置的步骤,帮助读者提升动手能力。 7. **案例分析**:通过对实际网络问题的案例分析,读者可以了解如何将理论知识应用于...
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">`:XHTML 1.0 Transitional,允许使用一些HTML4的宽松特性。 选择正确的DOCTYPE有助于...
《懒人笔记:一个iOS开源笔记App的深度解析》 懒人笔记,作为一个曾经活跃的iOS开源项目,为开发者提供了一个便捷的、可...通过深入研究其源代码,开发者可以系统地学习到iOS应用开发的多个层面,从而提升自己的技能。