您的位置:首页 > Web前端 > JavaScript

关于页面在浏览器端多个问题的处理(javascript)

2008-12-19 10:09 357 查看
以下大多是javascript控制页面操作的方法。


18、控制页面元素的class属性。
使用点号控制可以适合IE6,FF2,FF3。
代码如下:
alert(this.className);
-------------------------------------------------
17、当div被select影响时,要在div显示的相同位置放置一个iframe,并用zIndex使iframe在div的下面即可。代码如下
var boardDivObj=document.createElement("div");//放置要显示的div,iframe的容器。
boardDivObj.setAttribute("id","boarddiv");
//设置显示的位置参数
boardDivObj.style.width="194px";
boardDivObj.style.height="122px";
boardDivObj.style.marginTop="-510px";
boardDivObj.style.marginLeft="100px";
boardDivObj.style.position="absolute";

var conDivObj=document.createElement("div");
conDivObj.style.zIndex=100;//必须写
conDivObj.style.width=boardDivObj.style.width;//必须写
conDivObj.style.height=boardDivObj.style.height;//必须写
conDivObj.style.top="0px";//必须写
conDivObj.style.left="0px";//必须写
conDivObj.style.position="absolute";//必须写
conDivObj.style.backgroundColor="#FFFFFF";

var backif=document.createElement("iframe");
backif.style.width=boardDivObj.style.width;
backif.style.height=boardDivObj.style.height;
backif.style.top="0px";//必须写
backif.style.left="0px";//必须写
backif.style.position="absolute";//必须写
backif.style.zIndex=conDivObj.style.zIndex-1;//必须写
backif.frameBorder="0";
backif.src="about:blank";
boardDivObj.appendChild(conDivObj);
boardDivObj.appendChild(backif);
document.getElementById(relaObjId).appendChild(boardDivObj);//relaObjId为放置在页面时所属的父元素ID
--------------------------------------------------------------------------------
14、javascript对话框的处理showmodeldialog
以下对IE和FF和区分指的是IE6和FF2,在FF3中已经支持showmodeldialog,效果和在IE6中相同,不用再单独写处理代码。
showmodeldialog只能在IE中使用,FF是不支持的。在showmodeldialog弹出的对话框中写表单时,如果使用服务器控件方式,会提交时再弹出一个窗口。所以为了避免弹出窗口,
在showmodeldialog中的表单不使用服务器控件实现,使用常规的html表单提交方式,在对应的代码文件中写提交后的处理代码。同时还要对页面中的from标签的设置进行修改,首
先在head中的javascript脚本中设置window.name的值(用字符串指定一个名字),然后在from的属性中去掉action,加上target="***",***就是对window.name指定的名字。这样
在对话框中提交表单就不会出现弹出窗口的问题。在提交完表单后,如果要关闭对话框,只要用javascript的window.close()就可以关闭了。对在FF中的对话框,因为不支持
showmodeldialog,所以只能用window.open。但效果是一样的,表单提交的代码和页面上修改都是相同的,所以只要在打开对话框时判断浏览器,用两种不同的方式打开浏览器就
可以了。其它地方的代码是一样的,不用调整。
--------------------------------------------------------------------------
13、由后台代码先页面添加js数组,以传递数据。
Dim csarr As ClientScriptManager = Page.ClientScript
Dim arrstr As String = "" '数据用逗号 , 分隔的数组字符串表示
csarr.RegisterArrayDeclaration("realcountdata", arrstr)
----------------------------------------------------------------------------
12、网页定时刷新内容
设置的链接地址可以是当前页面,页面会被完全刷新,不会有缓存问题。
<meta http-equiv="refresh" content="5;url='default.aspx'"/>
5表示时间间隔,单位是秒。url表示要刷新的页面名。
---------------------------------------------------------------------------
11、javascript中eval()
用于执行由js写成的代码。
--------------------------------------------------------------------------
10、javascript控制DOM中元素的style。
在DOM中控制style,必须直接对属性进行控制,直接操作属性,不能使用简称。属性名区分大小写。setAttribute方法存在浏览器兼容问题,不能确定其适用范围。
例:element.style.borderColor表示边框颜色。
--------------------------------------------------------------------------
9、javascript验证邮箱格式的正则表达式
var flagstr=/[a-zA-Z_0-9]{1,}@[a-zA-Z_0-9]{1,}/.{1}[a-zA-Z]{1,}/;
flagstr.test(string);
-----------------------------------------------------------------------------
8、要在showmodaldialog的javascript对话框的自身关闭按钮中添加处理过程。
方法是在对话框的所在页面的添加window.onunload()=function (){}。就可以在对话框被自身的窗口关闭按钮关闭时执行添加的过程。
-----------------------------------------------------------------------------
7、在操作DOM时,对table标签的子结点操作是不能直接控制tr的,table下是tbody,然后才是tr,最后是td。否则直接控制tr时,只有FF有效,IE是无效的。
---------------------------------------------------------------------------
4、javascript复制生成的代码:
//同时支持IE6和FF2
function copyToClipboard()
{var ha_txt="";
var divobj=document.getElementById("cou_id");
divobj.focus();
divobj.select();//选中文本
ha_txt=document.selection.createRange().text//只兼容IE
if (window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", ha_txt);
alert('复制代码成功!');
} else if (navigator.userAgent.indexOf("Opera") != -1) {
window.location = ha_txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("你使用的FireFox浏览器,复制功能未打开!/n请在浏览器地址栏输入“about:config”并回车。/n然后将“signed.applets.codebase_principal_support”
双击,设置为“true”");
return;
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = ha_txt; str.data = copytext;
trans.setTransferData("text/unicode", str, copytext.length * 2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip) return false;
clip.setData(trans, null, clipid.kGlobalClipboard);
alert('复制代码成功!');
return ;
}
}


以上内容中如有版权问题,本人会及时删除。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: