Re: [問題] IE7跨frame appendChild

看板Ajax作者 (小殘)時間15年前 (2009/12/08 23:44), 編輯推噓1(1010)
留言11則, 3人參與, 最新討論串2/2 (看更多)
程式結構大概是這樣 a.html <div style="width:200px;height:200px"> <iframe width="100%" height="100%" src="b.html"></iframe> </div> b.html <script> function test() { var div = document.createElement('DIV'); div.innerHTML = "test"; with( top ) { document.getElementsByTagName('BODY')[0].appendChild(div); } } </script> <input type="button" value="test" onclick="test();" /> ※ 引述《emn178 (小殘)》之銘言: : 最近在處理相容性問題 : 在IE7上遇到這個問題: : 在child frame用JavaScript動態產生HTML Element後,要appendChild到 parent frame的 : 某個Element,就會出錯,在其他瀏覽器都是正常的 : 想問這是IE7的限制(or bug) ? 不知道有沒有人遇過 : 好像是無解? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.75.235

12/08 23:51, , 1F
來測測看...
12/08 23:51, 1F

12/09 00:03, , 2F
我發現ie6下也會 , 而且最奇怪的是它可以改parent 上的元素,
12/09 00:03, 2F

12/09 00:03, , 3F
甚至可以改body的innerHTML , 但是就是不給 appendChild @_@
12/09 00:03, 3F

12/09 00:03, , 4F
理由是引數錯誤 , 還在想...
12/09 00:03, 4F

12/09 00:08, , 5F
如果只是要解決問題 ,先改用innerHTML吧.
12/09 00:08, 5F

12/09 00:09, , 6F
with(top){document.body.innerHTML+="<div>test</div>";}
12/09 00:09, 6F

12/09 12:38, , 7F
div <= iframe.document產生的 所以parent.document
12/09 12:38, 7F

12/09 12:39, , 8F
不能appendChild
12/09 12:39, 8F

12/09 12:47, , 9F
實際上加入的物件會有script, 用innerHTML方式會失效
12/09 12:47, 9F

12/09 12:50, , 10F
目前唯一的解法似乎是從createElement時就要with(top)了
12/09 12:50, 10F

12/09 12:51, , 11F
不過之前已經寫了一堆,就全部都要改掉....
12/09 12:51, 11F
文章代碼(AID): #1B7dHq_j (Ajax)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1B7dHq_j (Ajax)