【问题标题】:js not working on IE , but working of ff and gcjs 不能在 IE 上工作,但可以在 ff 和 gc 上工作
【发布时间】:2011-06-01 15:56:57
【问题描述】:


我有这行代码:

document.getElementById(object).innerHTML=data;

其中 object 等于 'index' (这是 html 中 div 的 id)并且数据是一些文本...... firefox 或 chrome 上没有错误,但 Internet Explorer 给了我“未知的运行时错误” !!!我很快就会秃顶...

数据示例:(出于某种原因,如果我删除 <table> 一切都会正常...)

<table style="width:100%;">
                <tr class="tablePagnation">
            <td valign=top colspan="5">
                <input type=hidden id="pagnation" value="1">
                <label class="disabledlink">ÇáÓÇÈÞ</label>              <label class="disabledlink">ÇáÇæáì</label>              <a href="javascript:;" onclick="setPagnation('1');"class="pagnation_selected">1</a>
                <a href="javascript:;" onclick="setPagnation('2');"class="pagnation">2</a>
                <a href="javascript:;" onclick="setPagnation('3');"class="pagnation">3</a>
                <a href="javascript:;" onclick="setPagnation('4');"class="pagnation">4</a>
                <a href="javascript:;" onclick="setPagnation('5');"class="pagnation">5</a>
                                <a href="javascript:;" onclick="setPagnation('64');">ÇáÇÎíÑÉ</a>                <a href="javascript:;" onclick="setPagnation('2');">ÇáÊÇáí</a>          </td>
        </tr>
                <tr class="Heading3">
            <td valign=top style="width:40px;">
                <input type=checkbox onclick="toggleCheckboxes('msgbox',this.checked);">
                <a href="javascript:;" onclick="refresh_inbox();"><img src="images/refresh.png" title="ÊÍÏíË"></a>
            </td>
            <td valign=top>
                ãä
            </td>
            <td valign=top>
                ÇáÚäæÇä
            </td>
            <td valign=top>
                ÇáÊÇÑíÎ
            </td>
            <td valign=top>
                ÇáÚãáíÇÊ
            </td>
        </tr>
                    <tr class="GridRow UserRecordRow">
                <td valign=top>
                    <input type=checkbox id="msgbox" value="26" name="msgbox">
                                                                        <img src="images/msg_read.png">
                                                            </td>
                <td valign=top>
                                            <a href="index.php?pg=inbox&do=read&id=26">ÑÇãí</a>
                                    </td>
                <td valign=top>
                                        te45tef
                </td>
                <td valign=top>
                    10-01-2011 01:21 PM
                </td>
                <td valign=top>
                    <a href="javascript:;" onclick="delete_msg(26);">
                        <img src="images/delete.png" title="ÍÐÝ">
                    </a>
                </td>
            </tr>
                    <tr class="GridRow UserRecordRow">
                <td valign=top>
                    <input type=checkbox id="msgbox" value="25" name="msgbox">
                                                                        <img src="images/msg_unread.png">
                                                            </td>
                <td valign=top>
                                            <a href="index.php?pg=inbox&do=read&id=25">ÑÇãí</a>
                                    </td>
                <td valign=top>
                                        5tfe54tfe
                </td>
                <td valign=top>
                    10-01-2011 01:20 PM
                </td>
                <td valign=top>
                    <a href="javascript:;" onclick="delete_msg(25);">
                        <img src="images/delete.png" title="ÍÐÝ">
                    </a>
                </td>
            </tr>
            </table>

【问题讨论】:

  • 请发布data的值。似乎不太可能是罪魁祸首,但 IE 确实做了一些奇怪的事情。
  • 您的代码在这里与解决您的问题无关(没有 JS 的痕迹,没有 id="index" 的痕迹,没有任何值的痕迹 真正object 中或data)。就 JS 和标记而言,IE 确实是个奇葩。请严格,例如使用valign="top" 而不是valign=top

标签: javascript


【解决方案1】:

几周前我遇到了类似的问题。当您将格式错误的 HTML 插入文档时,您会收到“未知的运行时错误”。 IE is not as forgiving, apparently.

有时,如果您尝试在 inline 元素 内插入 块级元素(例如,div 内的 @ 987654325@ 将导致此错误)。您可以通过更改父元素来解决此问题。你能告诉我们你想插入什么样的元素data

这是一个讨论错误的blog post 和一个处理通过Javascript 操作表的上下文中的错误的stackoverflow question

更新

在这种情况下,我想你必须通过修剪范围来弄清楚有问题的元素是什么。尝试插入最简单的 HTML(也许你的表格只有一行和一个单元格)。然后逐步添加更多元素,直到出现错误。这样,您将能够识别导致错误的元素。

【讨论】:

  • 我正在尝试将data 插入到
  • 好吧,即使代码是&lt;table style="width:100%;"&gt; &lt;tr&gt; &lt;td&gt; hi &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;,它仍然无法正常工作
  • @Ronan 有趣。您确定页面的其余部分格式正确吗?
  • 100% :( 检查每个标签,使用 html 验证器...一切都很好...我讨厌 IEEEEEEEEEE
  • 不能在 div 中插入一个简单的表格似乎很奇怪。通常,我会说它指向页面上其他地方的错误......是的,IE 确实很糟糕。
【解决方案2】:

也许object 是IE 中的保留关键字?尝试使用不同的变量名。

【讨论】:

  • 我猜这可能也是如此(尤其是考虑到非描述性错误消息)。
  • @Kyle 我在 IE 8 上尝试过这个,并且 document.getElementById(object) 似乎确实有效!我确定问题根本不在于那条线。
【解决方案3】:

您确定这是“未知运行时错误”的根源吗?你能把代码隔离成这样吗?尝试用带引号的“索引”字符串替换对象,然后只使用该行(以及为数据定义的内容)。

示例代码:

document.getElementById('index').innerHTML = 'Test';

【讨论】:

  • 那么,object 可能是一个保留字。或者,您在objectdata 中发送的内容不是您想的那样?
【解决方案4】:

虽然这些都很好,但我建议使用 JQuery 库来访问 dom 元素。

【讨论】:

  • 或者只是纯 JavaScript,或者其他库。这仍然不是答案。
  • 当然,加载整个库只是为了做一个innerHTML
  • 对于含糊的回答,我深表歉意。我的建议是,在处理语言时,请谨慎选择工具。随便乱扔 java 脚本可能会成为一个巨大的维护难题。 J Query 正在成为多种网页技术的 java 脚本的事实标准。
猜你喜欢
相关资源
最近更新 更多
热门标签