我遇到了一个麻烦的网页,该网页的结构很复杂。如果用鼠标单击一个DIV,则一切正常。但是,如果它是由javascript(即divElement.focus)关注的。布局变得凌乱。这仅在IE7 / 8中发生。

那么,IE中的“单击焦点”和“按JavaScript焦点”之间有什么区别吗?

最佳答案

触发Javascript focus事件不会触发click事件。在没有看到相关代码的情况下,我不得不猜测某些click处理程序已经存在,而在您触发focus事件的情况下,该处理程序并未被调用。

您可以尝试触发click

var clickEvent;
if(document.createEvent) {
    clickEvent = document.createEvent('click');
    clickEvent.initMouseEvent('click');
    divElement.dispatchEvent(clickEvent);
} else {
    // Semi-pseudocode for IE, not tested, consult documentation if it fails
    clickEvent = document.createEventObject();
    divElement.fireEvent('onclick');
}


或者,如果您对jQuery感兴趣:

$(divElement).click();


原型也有类似的解决方案(搜索Event.simulate)。

10-08 20:08