看板 Ajax 關於我們 聯絡資訊
程式結構大概是這樣 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
TonyQ:來測測看... 12/08 23:51
TonyQ:我發現ie6下也會 , 而且最奇怪的是它可以改parent 上的元素, 12/09 00:03
TonyQ:甚至可以改body的innerHTML , 但是就是不給 appendChild @_@ 12/09 00:03
TonyQ:理由是引數錯誤 , 還在想... 12/09 00:03
TonyQ:如果只是要解決問題 ,先改用innerHTML吧. 12/09 00:08
TonyQ:with(top){document.body.innerHTML+="<div>test</div>";} 12/09 00:09
SHPK:div <= iframe.document產生的 所以parent.document 12/09 12:38
SHPK:不能appendChild 12/09 12:39
emn178:實際上加入的物件會有script, 用innerHTML方式會失效 12/09 12:47
emn178:目前唯一的解法似乎是從createElement時就要with(top)了 12/09 12:50
emn178:不過之前已經寫了一堆,就全部都要改掉.... 12/09 12:51