2011-03-15 46 views
0

對於動態創建的元素,我注意到element.setAttribute(onClick,myFunction)在IE中不能正常工作,而element.onclick = myFunction在所有瀏覽器中都能正常工作。除此瀏覽器差異外,是否還有功能差異?element.event和element.setAttribute(event,handler)之間的區別

+0

http://webbugtrack.blogspot.com/2007/08/bug-242-setattribute-doesnt-always-work.html – epascarello 2011-03-15 12:08:40

回答

2

理論上,setAttribute接受一個字符串並將其分配給一個屬性,然後將其映射到任何關聯的DOM屬性。在IE 7及更低版本(以及IE 8兼容模式和Quirks模式下的IE 8)中,它直接爲同名的DOM屬性賦值(當屬性期望字符串以外的其他屬性時,它會區分大小寫和無用的值值)。

onfoo系列的DOM屬性需要一個函數。

通常,首選使用attachEventListener和friends,並使用抽象層(如由YUI,jQuery等提供)來分配值。這通常更容易。這些庫也傾向於包含解決內存泄漏相關錯誤的功能。