Борьба с Activating ActiveX Controls
Одно из новшевств, которое появилось в последних обновлениях Internet Explorer — это «Activating ActiveX Controls» (KB912945). После обновления Internet Explorer позволяет управлять элементами, которые находятся на ActiveX (а к ним относится и Flash) только после клика на объект, сам объект до клика выделяется рамкой, если над ним провести мышкой. Само по себе это не так уж и мешает, только если этот ActiveX (Flash, например) не находится за каким-то контентом и если на нём находятся ссылки, то кликнуть по ним получается только со второго раза — первым активизируется ActiveX и только потом срабатывает ссылка.
Оказывается есть метод борьбы с этой проблемой. Всё что нужно сделать — обойти все теги object и присвоить их outerHTML самому себе. Например, так:
// When the page loads:
window.onload = function(){
if (document.getElementsByTagName) {
// Get all the tags of type object in the page.
var objs = document.getElementsByTagName("object");
for (i=0; i<objs.length; i++) {
// Get the HTML content of each object tag
// and replace it with itself.
objs[i].outerHTML = objs[i].outerHTML;
}
}
}
// When the page unloads:
window.onunload = function() {
if (document.getElementsByTagName) {
//Get all the tags of type object in the page.
var objs = document.getElementsByTagName("object");
for (i=0; i<objs.length; i++) {
// Clear out the HTML content of each object tag
// to prevent an IE memory leak issue.
objs[i].outerHTML = "";
}
}
}