セットアップ:
関数を呼び出すリンクを含む suckerdiv メニューがあります。上記の関数は次のようになります。
function F(string)
{
var s = '';
var c = '';
var t = '';
if(string == 'cat')
{
s = "cat";
c = "animal";
t = "fluffy";
}
// ...
document.getElementById("title").innerHTML = t;
document.getElementByID("category").innerHTML = c;
document.getElementByID("description").innerHTML = s;
}
正常に動作します。ただし、実際の実装では、description 変数に HTML が少し含まれており、IE を無効にしているようです。Firefox は問題なく処理しますが、たとえば、
c = 'Stuff<br><ul><li>listed stuff</li><li>more listed stuff</li><li>some more listed stuff</li></ul><br>bla bla<br>bla';
その後、IE は不明なランタイム エラーをスローし、その特定のリンクをクリックすると終了します。
上記の 3 つの ID は、次のようにテーブルにネストされた div です。
<table border=1>
<tr><td><div id="title"></div></td></tr>
<tr><td><div id="category"></div></td></tr>
<tr><td><div id="description"></div></td></tr>
</table>
IE ではテーブル自体が読み取り専用であることは知っていますが、TD はそうではないことも知っています。タイトルとカテゴリはどちらも正常に機能するので、その文字列の html と関係があると考えました。エスケープする必要がある部分はありますか?< などの html エスケープ コードを入力してみましたが、HTML が評価されず、醜いテキストが大量に残ってしまいました。
何か案は?