javascript – 不在dom中的克隆元素的getComputedStyle
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 不在dom中的克隆元素的getComputedStyle,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2343字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 不在dom中的克隆元素的getComputedStyle](/upload/InfoBanner/zyjiaocheng/723/ffd3027e8a7f41b5864bfc575124ff87.jpg)
我有一个像html的页面;
<div id="cloneDiv">
<h1>
<a href="">ASUS Vivotab Smart Black Office 2013 H&S ME400C-C2-BK 10.1-Inch 64GB Tablet
(Black)</a>
</h1>
<div id="fordBackgroundImage" style="display: inline-block; background-position: center center; width: 1200px;
height: 565px; background-image: url('http://www.ford.com/ngbs-services/resources/ford/edge/2013/npcolorizer/edg13_ingotsilver.jpg');
background-repeat: no-repeat; background-attachment: scroll; position: relative;">
<div style="position: absolute; color: white; font-weight: bold; top: 50px; left: 100px; font-size: 50px;">
Try new ford jeep!
</div>
</div>
<p>
<img alt="" src="http://ecx.images-amazon.com/images/I/81UsKLK%2B6LL._SX342_.jpg"
class="border thumb0 selected" style="cursor: pointer;">
</p>
<p>
<img border="0" src="http://g-ecx.images-amazon.com/images/G/01/kindle/otter/dp/o1_slate_sm._V358729399_.jpg"
style="width: 320px; height: 282px;">
</p>
</div>
我有一个javascript函数将元素转换为计算样式元素;
function MakeCssInline(elementParam) {
var domE = $(elementParam).get()[0];
var cssText = window.getComputedStyle(domE).cssText;
$(elementParam).attr("style", cssText);
// children
var items = domE.getElementsByTagName("*");
for (var i = 0; i < items.length; i++) {
var domE2 = items[i];
var cssText2 = window.getComputedStyle(domE2).cssText;
$(items[i]).attr("style", cssText2);
}
};
如果我在原始元素上调用函数它可以工作;但它改变了原始元素html
MakeCssInline($("#cloneDiv"));
但是当我尝试在克隆元素上调用此函数时,它不起作用;
var cloneElement = $("#cloneDiv").clone();
MakeCssInline(cloneElement);
它不会将样式应用于元素,因为我没有附加到body元素中,
因为我不想搞乱原始元素,有没有办法用javascript获取元素的计算样式克隆?
解决方法:
我写了一个非常基本的函数,遵循Felix Kling的建议;
function MakeCssInline(elementParam) {
var cloned = $(elementParam).clone();
$(cloned).find("script").remove();
$(cloned).find("link").remove();
$(cloned).find("iframe").remove();
//
var domE = $(elementParam).get()[0];
var domCloned = $(cloned).get()[0];
//
var cssText = window.getComputedStyle(domE).cssText;
$(cloned).attr("style", cssText);
// children
var items = domE.getElementsByTagName("*");
var itemsCloned = domCloned.getElementsByTagName("*");
for (var i = 0; i < items.length; i++) {
var domE2 = items[i];
var cssText2 = window.getComputedStyle(domE2).cssText;
$(itemsCloned[i]).attr("style", cssText2);
}
return domCloned;
};
内容总结
以上是互联网集市为您收集整理的javascript – 不在dom中的克隆元素的getComputedStyle全部内容,希望文章能够帮你解决javascript – 不在dom中的克隆元素的getComputedStyle所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。