Использование jQuery для изменения всех экземпляров <object>на <iframe>для поддержки IE - PullRequest
5 голосов
/ 21 мая 2010

Мне интересно, можно ли использовать jQuery для отключения всех тегов <object> на сайте для тегов <iframe> при загрузке в IE 8 и ниже. По сути, это позволило бы странице быть XHTML 1.1 действительной и не иметь двойной кодировки, исключая необходимость тратить так много времени на нестандартные браузеры.

Атрибут data= необходимо изменить на src=, я бы хотел вставить frameborder="0", и все значения style для тега <object> также должны быть установлены для <iframe> тег.

Моя цель здесь , а не , чтобы создать дискуссию о <iframe> s против <object> s, я просто думаю, что это будет огромная экономия времени и поощрение правильного, строгого xhtml кодирования практика.

Спасибо за любой вклад!

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Я не знаю, можете ли вы изменить тип элемента DOM, но вы всегда можете создать новый элемент IFRAME и удалить вместо него старый элемент.

Нечто подобное (осторожно, не проверено!)

$("object").each(function() {
    var obj = $(this);
    $("<iframe/>").attr({
        src: obj.attr("data"),
        style: obj.attr("style"),
        frameborder: 0
    })
    .after(obj);

    obj.remove();
});
1 голос
/ 21 мая 2010

Основные сведения о том, как изменить тип элемента, см. В jQuery, преобразующем элемент DOM в другой тип (не знаю, будет ли он работать правильно в XHTML, но это вполне возможно), но я неЯ думаю, что это хорошая идея.Я вижу, что это вызывает задержки на старых машинах (на которых работает IE6), и, очевидно, не будет работать, если JavaScript отключен.Все, что для достижения правильного кода?Не очень хорошая идея IMO.

Прежде чем делать это, если код должен быть действителен при любых обстоятельствах, я бы посоветовал передать другой код IE6 на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...