我已经知道了sizcache 和 sizset 属性是什么 https://stackoverflow.com/questions/3782709/what-purpose-do-sizcache-and-sizset-serve-in-jquery,但我担心它们在我们的 Web 应用程序中的倍增。我解释一下:我们使用 jQuery 开发了一个“自制”WYSIWYG html 编辑器,当我们的用户保存结果 HTML 时,我们使用.html()
(or innerHTML
)然后将其保存到数据库中。然后我们的用户可以编辑它,并再次保存回数据库中。当使用非 IE 浏览器时,一切都很好,但是在 IE 中,jQuery 添加了这些(咳咳,讨厌)sizset and sizcache属性,它们最终出现在生成的 HTML 中。当从数据库重新加载 HTML 并再次保存时,会添加越来越多的 sizset 和 sizcache。
对我来说,理想的解决方案是这些属性永远不会出现在数据库中。如果首先有来自 jQuery 的解决方案,我不确定是否要解析 HTML 服务器端以删除它们。有人遇到过这个问题吗?
这是我们拥有的示例:
HTML :
<div id="source">
<div sizset="37" sizcache09734513102453994="3" sizcache07081295255533577="350" sizcache0714455993494169="6324"></div>
... more html going on
</div>
JavaScript:
var source = $('#source').html();
变量“source”最终包含 sizset 和 sizcache 属性
使用正则表达式 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace使用以下命令检索整个字符串后.html()
:
var re = /\s*(sizset|sizcache)\d*="[^"]*"/gi;
source = source.replace(re,'');
http://jsfiddle.net/mblase75/fMdVc/ http://jsfiddle.net/mblase75/fMdVc/
或者,jQuery 有一个.removeAttr() http://api.jquery.com/removeAttr/方法,但您必须将其应用于特定标签:
jQobj.removeAttr('sizset').removeAttr('sizcache');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)