0


i have this line of code :

document.getElementById(object).innerHTML=data;

where object is equal to 'index' (which is an id for a div in the html) and data is some text ... no errors on firefox or chrome , but internet explorer gives me "Unknown runtime error" !!! i'll become bald soon ...

Data Sample : (for some reason , if i remove the <table> everything goes just fine ...)

<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>
Rami Dabain
  • 4,709
  • 12
  • 62
  • 106
  • Please post the value of `data`. Seems unlikely to be the culprit, but IE does do some strange things. – Hemlock Dec 30 '10 at 21:41
  • Your code, here, is irrelevant to solve your problem (no trace of JS, no trace of `id="index"`, no trace of what values are **really** inside `object` or `data`). IE is really a wh*re when it comes to JS and mark-up. Please, be strict and use `valign="top"` instead of `valign=top` for example. – Shikiryu Jan 10 '11 at 17:02

4 Answers4

2

I ran into a similar issue a few weeks ago. You get an "Unknown runtime error" when you insert malformed HTML into the document. IE is not as forgiving, apparently.

Sometimes, you will also get this error if you try to insert a block-level element inside an inline element (for example, a div inside a p will cause this error). You can get around this by changing the parent element. Can you tell us into what kind of element you're trying to insert data?

Here is a blog post that talks about the error and a stackoverflow question that deals with the error in the context of manipulating tables via Javascript.

UPDATE

In this case, I guess you'll have to figure out what the offending element is by trimming the scope. Try inserting the simplest possible HTML (perhaps your table with just a single row and cell). Then progressively add more elements until you get the error. That way, you will be able to identify the element that is causing the error.

Community
  • 1
  • 1
Vivin Paliath
  • 94,126
  • 40
  • 223
  • 295
0

Perhaps object is a reserved keyword in IE? Try using a different variable name.

adarshr
  • 61,315
  • 23
  • 138
  • 167
  • I would guess this is probably it as well (especially given the non-descriptive error message). – Kyle Dec 30 '10 at 17:10
  • @Kyle I tried this on IE 8 and document.getElementById(object) does seems to work! I'm sure the problem is not at all with that line. – adarshr Dec 30 '10 at 17:16
0

Are you confident that this is the origin of the "Unknown runtime error"? Can you isolate the code to just be this? Try replacing object with the quoted "index" string and just have that line (along with something defined for data).

Example code:

document.getElementById('index').innerHTML = 'Test';
Kyle
  • 2,822
  • 2
  • 19
  • 24
  • Then, `object` may be a reserved word. Or, the content you're sending in `object` or `data` isn't what you think ? – Shikiryu Jan 10 '11 at 16:58
-2

While these are all fine, I would recommend using the JQuery library for accessing dom elements.

Nathan Tregillus
  • 6,006
  • 3
  • 52
  • 91
  • Or just plain JavaScript, or another library. Still this is not an answer. – ase Dec 30 '10 at 18:11
  • 2
    Sure, load an entire library just to do an `innerHTML`. – Shikiryu Jan 10 '11 at 16:57
  • My apologies for the vague answer. What I would suggest is when dealing with a language, pick your tools carefully. Just throwing random java script around can become a massive maintenance headache. J Query is becoming a defacto standard for java script for multiple web page technologies. – Nathan Tregillus Feb 01 '11 at 15:27