小弟现在要做一个控件复制的功能保证被复制出来的控件和原控件具有一样的属性(id除外)现在复制style的时候出现了问题我发现一个控件的style是一个对象就想把原控件上的style对象中的属性遍历出来然后设置到复制出来的控件的style对象上比如:
//t1是一个text控件
var t1 = document.getElementById('t1');var t2 = document.createElement('INPUT');
t2.type='text';var style1 = t1.style;
for(var p in style1){
t2.style[p] = style[p];
}就是想让t2和t1保持一样的渲染效果但是浏览器报错不知道如何实现请高手帮忙谢谢
//t1是一个text控件
var t1 = document.getElementById('t1');var t2 = document.createElement('INPUT');
t2.type='text';var style1 = t1.style;
for(var p in style1){
t2.style[p] = style[p];
}就是想让t2和t1保持一样的渲染效果但是浏览器报错不知道如何实现请高手帮忙谢谢
解决方案 »
- Extjs 4.0 DwrTreeloader
- 求一小段js代码
- 异步获取页面后,innerHTML无法应用样式表css,javascript脚本无效
- 简单计算:onpropertychange时正确,但在onchang时错误?
- 大哥们、大姐们、帅哥们、美女们、我想求你们帮我做一个飘满玫瑰的可镶入HTML网页代码、
- js 内存管理小提问.
- 请问如何用JavaScript改变<frame>的宽度?
- iframe能只显示垂直的滚动条而把水平的滚动条禁止了吗?我搜了所有的帖子也没有找到答案,好像是不可能的?
- 这样的css样式怎么写?
- [原创]业余时间写的一个飞行射击游戏
- <input type="file"/>的疑难问题
- 哪些HTML可以调用onload事件?
不行~因为原控件不是写在html页面上的而是在服务器端生成出来的字符串运行的时候写在页面上的所以没有样式表我也刚才也想到了用克隆现在去试试
<script>
window.onload=function(){
var t1 = document.getElementById('t1');
var t2 = document.createElement('INPUT');
t2.style.cssText = t1.style.cssText;
document.body.appendChild(t2);}
</script>
<body>
<input type="text" style="border:1px dashed;" id="t1"></body>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>test</title>
<script>
window.onload = function(){
var d1 = document.getElementById("div1");
var d2 = d1.cloneNode(true);
document.body.appendChild(d2);
}
</script>
</head><body>
<div id=div1 style="width:400px;height:300px;background-color:red"></div>
<br/>
</body></html>
try{t2.style[p] = style[p];}catch(e){}
#div1{
color:red;
border:1px solid blue;
}
</style>
<div id="div1" style="font-size:24px;">
测试DIV1
</div>
<div id="div2">
测试DIV2
</div>
<div id="divmsg"></div>
<script>
/**
* 将 obj 的样式复制到 obj2 上
*/
function copyStyles(obj, obj2){ var styles = obj.currentStyle || obj.ownerDocument.defaultView.getComputedStyle(obj,null);
for(var e in styles){
try{
eval("obj2.style." + e + " = styles[e];");
document.getElementById("divmsg").innerHTML += e + "=" + styles[e] + "<br/>";
}catch(e){}
}
}window.onload = function(){
copyStyles(document.getElementById("div1"), document.getElementById("div2"));
}
</script>
因为用户在绘制表样的时候谁也不知道他会画成什么样~表样的绘制程序是一个Swing程序,用户画的时候就跟在Excel上画一样格子就是格子,里面没有控件。到了Html上格子是TD,里面填报的数据是Text样式表里记录的是TD的CSS,Text的CSS我是在生成HTML字符串的时候写在了控件上用节点克隆已经解决了,我发现我以前真笨蛋居然不知道有这么好用的方法,还一个一个的自己创建控件,然后自己设置属性靠的肋~