IE:无法获取属性“clientWidth”的值:对象为空或未定义
Posted
技术标签:
【中文标题】IE:无法获取属性“clientWidth”的值:对象为空或未定义【英文标题】:IE: Unable to get value of the property 'clientWidth': object is null or undefined 【发布时间】:2012-07-24 02:56:24 【问题描述】:错误信息只显示在 IE 上,但似乎没有解决此问题的方法。
我已经将http-equiv="X-UA-Compatible"
设置为IE8
,但仍然无法正常工作。
我想要做的是使用 jQuery 重新加载表格的内容。但似乎 jQuery 重新加载显然无法设置 clientWidth
,因为 jQuery 中没有该术语的对应项。
<table style="" id="actionMap" class="top-table">
<table>
的 id 属性用于 DOM,class 用于 jQuery。
j(function()
j('#filter_workflows').change(function ()
var workflow = j(this).val();
var url = '<spring:url value="/actionMap" />' + '?filter_workflow=' + workflow;
var savedWidth = document.getElementById("actionMap").clientWidth;
j('table.top-table').load(url+' table.top-table > *');
j('input[name=filter_workflow]').val(workflow);
document.getElementById("actionMap").clientWidth = savedWidth;
);
);
原来属性clientWidth
是只读的。
document.getElementById("actionMap").clientWidth = savedWidth;
永远不会成功。
那么我们如何在jQuery重新加载表格后设置clientWidth属性呢?
谢谢
【问题讨论】:
$(window).width()
-- 这规范了 jQuery 中的过程,因为它考虑了不同浏览器中的框模型。
clientHeight/clientWidth returning different values on different browsers的可能重复
@Ohgodwhy 谢谢,但这里我只想设置表格的clientWidth。似乎在重新加载 jQuery 之后从未设置过该参数,所以即使我们设置了 $(#actionMap).width() 的东西,IE 仍然将 clientWidth 识别为 null,然后得到脚本错误。
【参考方案1】:
这有帮助吗?
http://api.jquery.com/width/
clientWidth 可能是特定于客户端的(它可以是特定于客户端的,除 IE 之外的所有东西都支持它...)
jQuery 为这些提供了包装函数,请参阅 http://api.jquery.com/category/dimensions/ 和 http://api.jquery.com/category/offset/
【讨论】:
以上是关于IE:无法获取属性“clientWidth”的值:对象为空或未定义的主要内容,如果未能解决你的问题,请参考以下文章
style="display"之后不能获取offsetHeight或clientWidth这类测量的值
IE9 JavaScript 错误:SCRIPT5007:无法获取属性“ui”的值:对象为空或未定义
浏览器可视区大小简说(clientWidth,innerWidth)
js中clientWidth, scrollWidth, innerWidth, outerWidth和offsetWidth属性的区别