1

さまざまなブラウザーで関数の互換性をテストしているときに、IE で知らなかった動作を見つけました。

文字「&」が含まれていると単語が切り捨てられるようです。

JavaScript 関数は、サーバー (c#) から json オブジェクトを取得し、リストを動的に作成します。オブジェクトの説明が「Test & Test」の場合、Chrome と Firefox では説明が期待どおりに表示されますが、IE では「Test」と表示されます。

私が見つけた唯一の解決策は、F12を押して「ドキュメントモード」を「IE9標準」に強制することです。
さまざまなコンテンツ値で使用されるさまざまな doctypes を試しました。javascript ie9.js ファイル (MSIE を標準準拠のブラウザーのように動作させるファイル) を含め、オブジェクトの説明を div、span、p または任意の形式でラップしました。 html で利用できるタグの種類で、これまでのところ結果はありません。

リストを作成する JavaScript 関数は次のとおりです。

$.each(data, function (ind, c) {
  if ($container.find('option:contains("' + c.Description + '")').length > 0) {
    var name = c.Description;
    var $div = $('<div style="margin:0px;padding:0px;width:80%;float:left;" />').html(name).attr({ 'id': c._id });
    var $o = $('<li />').html($div).css({ 'margin': 0, 'padding': 0, 'width': '100%', 'font-size': '1em' })
    .addClass((ind % 2 == 0 ? 'odd' : 'even'));
    if (!(c.IsDefault)) {
      var $actionContainer = $('<div />').css({ 'height': 17, 'width': 17, 'float': 'right' });
      var $action = $('<button />').html('Delete')
      .css({ 'height': 16, 'width': 16 })
      .button({
        icons: { primary: 'ui-icon-trash' },
        text: false
      }).click(function () {
        if (confirm("Are you sure you wish to delete this object from the list?")) {
          var objectId= $(this).parent().parent().children(':first-child').attr('id');
          var server = $('#GroupServer').val();
          delete($container, server, objectId, $dialog);
        }
      });
      $action.removeClass('ui-corner-all');
      $actionContainer.append($action);
      $o.append($actionContainer);
    }
    $ul.append($o);
  }
});

そしてjsonオブジェクト:

{ "_id":1,"Description":"Test & Test", "IsDefault":true }

誰もその行動を見たことがありますか?また、IE のドキュメント モードを、私が既に試した以外の方法で IE9 標準に強制することは可能ですか? 敬具、

ローラン

4

1 に答える 1

0

ドキュメントモードを何から変更していますか? 本来はquirksモードでのレンダリングですか?それが問題の原因である可能性が最も高い場合は、有効な doctype、有効な HTML などがあることを確認してください。

于 2012-08-20T11:32:56.050 に答える