【问题标题】:Bit of javascript throwing an error in IE一些 javascript 在 IE 中引发错误
【发布时间】:2014-01-16 16:43:53
【问题描述】:

我的网站上有这段代码。

    </script>
       <script type="text/javascript">
       $(window).bind("load", function() {
        document.getElementById('loadercircle').style.display = 'none'
        });
    </script>

它所做的只是隐藏一个 html 元素。

网页错误详情

用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;.NET CLR 1.1.4322;.NET CLR 2.0.50727;.NET CLR 3.0.04506.30;.NET CLR 3.0.4506.2152 ;.NET CLR 3.5.30729;MS-RTC LM 8) 时间戳:2014 年 1 月 15 日星期三 16:47:24 UTC

消息:预期对象 线路:99 字符:6 代码:0

第 99 行是:document.getElementById('loadercircle').style.display = 'none'

知道为什么 IE 会出错吗?

【问题讨论】:

  • 文档中有id="loadercircle"的元素吗?您是否使用了类似 ASP.NET 的东西,可能会给 id 一个不同的名称(即 ctl01_loadercircle)?
  • 第一个&lt;/script&gt;之前有脚本标签吗?
  • 是的,手头还有另一个脚本,抱歉粘贴了。文档中有一个带有 loadercircle ID 的元素。我会尝试以下解决方案。谢谢!

标签: javascript jquery html


【解决方案1】:

document.getElementById('loadercircle') 似乎没有返回 HTML 元素。您要删除的元素是否具有属性id="loadercircle"

顺便说一句:您似乎正在使用 jQuery,所以您可以使用$('#loadercircle').hide()。当没有找到该元素时,它什么也不做,也不会抛出错误。

【讨论】:

  • 应该,它是一个 iframe。
【解决方案2】:

您确定在您的页面中包含 jQuery 吗?

<script src='//code.jquery.com/jquery-1.10.2.min.js'></script>

对我来说似乎工作正常,但是请注意,如果您希望在 DOM 完成加载后运行它,您应该使用以下内容:

HTML

<div id="loadercircle">Loader Circle</div>

JavaScript

$(document).ready(function () {
    document.getElementById('loadercircle').style.display = 'none'
});

另外一个用 jQuery 隐藏元素的简单方法是:

$('#loadercircle').hide();

JSFiddle:http://jsfiddle.net/x4HVV/1/

【讨论】:

  • 这一行给了我一个错误或警告:$('#loadercircle').hide();带有警告:消息:'null' 为空或不是对象
  • 您确定要在代码中加载 jQuery 库吗?你有参考 jquery-1.10.2.min.js 吗?或类似的 .js 文件?
【解决方案3】:

我会改成

$(window).on('load',function(){
 $('#loadercircle').hide();
});

【讨论】:

    【解决方案4】:

    你检查分号了吗?

    document.getElementById('loadercircle').style.display = 'none';
    

    【讨论】:

    • 分号不是必须的!
    • 因为它是函数的最后一条语句。
    猜你喜欢
    • 2012-03-01
    • 2011-11-18
    • 2019-01-30
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多