From: "Jens Müller" Date: 2006-08-04T00:20:28+09:00 Subject: Insertion problems with Opera Hi, as I couldn't figure out how to post to the Ruby Spinoffs forum directly, I am starting a new post here and hope some kind admin can move it over to the appropriate forum. I am trying to insert a new row to a table using prototype's "new Insertion.Bottom" which works fine in all popular browsers except for Opera. Digging into the code of prototype 1.5.0_rc0 I discovered that insertAdjacentHTML() is used for Opera: ---- lines 1147-1154 ---> if (this.adjacency && this.element.insertAdjacentHTML) { try { this.element.insertAdjacentHTML(this.adjacency, this.content); } catch (e) { var tagName = this.element.tagName.toLowerCase(); if (tagName == 'tbody' || tagName == 'tr') { this.insertContent(this.contentFromAnonymousTable()); } else { <------------------------ If I insert a simple "throw('bla')" in the first try-block, so that the catch-part is run, it works in opera. I boiled down the lengthy code and put up a test case [1] which uses insertAdjacentHTML() to add a new table row and you can see (when the updated innerHTML of the table is displayed) how opera seems to completely ignore the TR and TD tags yet handling B and I correctly. ---- interesting parts from the test case----> tbl = document.getElementById("mytable"); tbl.insertAdjacentHTML("beforeEnd", "newCellonenewCelltwo"); <------------------------ I know I could use DOM functions like insertRow() to circumvent that problem but I want to make use of prototype's functions as much as possible. I would appreciate any kind of help as to how to maybe change the prototype code without breaking other browsers or another way of working around this apparent bug. [1] TEST CASE - http://buzzinhornetz.ath.cx/tmp/adjacent.html Thanks in advance, schdewwn -- Posted via http://www.ruby-forum.com/.