Rumah > hujung hadapan web > tutorial js > Masalah yang disebabkan oleh penggunaan JSON dan table.innerHTML dalam kemahiran IE6-IE9_javascript

Masalah yang disebabkan oleh penggunaan JSON dan table.innerHTML dalam kemahiran IE6-IE9_javascript

WBOY
Lepaskan: 2016-05-16 15:24:12
asal
1105 orang telah melayarinya

1. Apabila menggunakan fungsi JSON dalam jQuery dalam mod keserasian IE dan mod keserasian penyemak imbas dengan kernel IE, "JSON undefined" muncul, tetapi bertukar kepada mod kelajuan tinggi penyemak imbas dipaparkan seperti biasa

Penyelesaian:

1. Perkenalkan terus json2.js ke dalam halaman yang anda gunakan (https://github.com/douglascrockford/JSON-js/blob/master/json2.js). tidak diterangkan secara terperinci.

2. Tentukan dalam kaedah js awam halaman

  if(typeof JSON == 'undefined'){ 
  $('head').append($("<script type='text/javascript' src='.../json2.js'>")); //此处的位置为该js文件所在路径
  }
Salin selepas log masuk

2. Apabila menggunakan ajax, selalunya perlu menjana elemen halaman secara dinamik dan menggunakan atribut innerHTML pada elemen untuk mengisi HTML halaman. Walau bagaimanapun, apabila didapati bahawa innerHTML elemen jadual diberikan nilai semasa penggunaan, ia adalah baik di bawah Firefox, tetapi ralat masa jalan yang tidak diketahui berlaku dalam mod keserasian IE. Contoh ralat adalah seperti berikut:


Didapati bahawa di bawah IE6-IE9, atribut HTML dalaman bagi jadual elemen berikut, thead, tfoot, tbody, tr, col, colgroup, html, title, style, frameset adalah baca sahaja

Penyelesaian: Panggil kaedah js berikut

function setTableInnerHTML(table, html) {//table 为table对象,html为生成的html字符串
  if (navigator && navigator.userAgent.match(/msie/i)) {
    var temp = table.ownerDocument.createElement('div');
    temp.innerHTML = '<table>' + html + '</table>';//注意此处传进来的html变量包含“<tbody></tbody>”标签  如果HTML变量中没有 则为 '<table><tbody>' + html + '</tbody></table>'
    table.replaceChild(temp.firstChild.firstChild, table.tBodies[0]);//用生成的div中table的tbody替换原table中的tbody
  } else {
    table.innerHTML = html;
  }
}
Salin selepas log masuk

Kandungan di atas adalah masalah yang disebabkan oleh penggunaan JSON dan table.innerHTML dalam IE6-IE9 yang dikongsi oleh editor saya harap anda menyukainya.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan