☆─────────────────────────────────────☆
newpeak (pioneer) 于 (Wed Jul 26 23:32:45 2006) 提到:
有一段javascript需要对dom数据进行操作,如:
<div>
<select>...</select>
<script>initial();</script>
</div>
initial()来自于一个很复杂的javascript库,正常的调用是在body的onload里调用initial()函数。initial()函数对<select>..</select>中的元素进行操作
然而现在需要将initial()用于ajax中,既把上边一整块数据传回到浏览器。有2种情况:
1 上边一整块数据被作为浏览器原来某DIV的innerHTML
在这种情况下,是可以正常运作的
2 上边一整块数据被传回到浏览器之后,浏览器利用javascript将该数据append到某DIV的子节点
在这种情况下,initial()函数会报错,错误信息是<select>..</select>无法找到
以上情况只在IE下出现,在firefox中一切都是正常。那么情况2和情况1有什么区别呢?javascript在DOM回传数据中的加载顺序,以及DOM数据回传之后继续进行DOM操作之后的加载顺序是怎样的呢? 由于javascript库是被混淆过的,因此很难以判断根本原因,只能从现象上来总结。谢谢帮忙!
☆─────────────────────────────────────☆
asker (no regret) 于 (Thu Jul 27 09:02:27 2006) 提到:
先append <select>
再append <script>?
【 在 newpeak (pioneer) 的大作中提到: 】
: 有一段javascript需要对dom数据进行操作,如:
: <div>
: <select>...</select>
: ...................
☆─────────────────────────────────────☆
newpeak (pioneer) 于 (Thu Jul 27 10:41:12 2006) 提到:
是把<div></div>里边的内容append,div里有<select>和<script>
【 在 asker (no regret) 的大作中提到: 】
: 先append <select>
: 再append <script>?
☆─────────────────────────────────────☆
asker (no regret) 于 (Thu Jul 27 10:45:55 2006) 提到:
我是说 一块append也许会有问题
分两次不知道会不会好了
【 在 newpeak (pioneer) 的大作中提到: 】
: 是把<div></div>里边的内容append,div里有<select>和<script>
☆─────────────────────────────────────☆
newpeak (pioneer) 于 (Thu Jul 27 11:55:25 2006) 提到:
确定下来了,将所有<script>都加一个defer,就可以了
【 在 newpeak (pioneer) 的大作中提到: 】
: 有一段javascript需要对dom数据进行操作,如:
: <div>
: <select>...</select>
: ...................