У меня есть страница с HTML-то вроде этогокак получить innerHtml тела без фрейма с JQuery
<body><iframe ></iframe><div id="menu">......</div>.....</body>
Я хочу, чтобы получить innerHTML тела, но без фрейма? Как я могу сделать это в jquery?
У меня есть страница с HTML-то вроде этогокак получить innerHtml тела без фрейма с JQuery
<body><iframe ></iframe><div id="menu">......</div>.....</body>
Я хочу, чтобы получить innerHTML тела, но без фрейма? Как я могу сделать это в jquery?
$(document).ready(function(){
$('body').not('iframe').html();
});
, который должен получить все в теле, кроме iframe. Вы, вероятно, хотите сохранить, что в переменном или что-то для справки позже
Мой [эксперимент JS Fiddle с этой идеей] (http://www.jsfiddle.net/davidThomas/dyHSU/2/) предполагает, что ['not()'] (http: //api.jquery.com/not/) не работает, как вы, и * I *, подумал, что это должно произойти. –
Это не сработает. Он удаляет, выбирает все элементы, которые соответствуют 'body', а затем удаляет их, если они также являются элементами' form'. – lonesomeday
Это не сработает. – user113716
Попробуйте с .clone
:
$(document.body)
.clone()
.find('iframe')
.remove()
.end()
.html();
Вы также можете передать '' iframe'' вызову 'remove()', тогда вы можете избавиться от 'find()' и 'end() 'вызывает. –
У меня есть его для работы в Firefox, но он не работает в IE6. он возвращает пустую строку в IE6 .. Я использую jquery 1.4.4 – kd44
jquery.clone() не работает в IE .. любое обходное решение..Я думаю, что я застрял с моей проблемой – kd44
Я нашел еще один способ сделать это
var page = $('body').html();
page = $('<div>' + page + '</div>');
var html = $(page).find('iframe').remove().end().html();
переменного HTML содержит html без iframe.
И это работает с IE, так как jquery.clone() не работает на моей странице может быть из-за некорректного HTML, как @lonesomeday suggestted
Вы пробовали дергая ''
Невозможно удалить iframe, это часть истории ajax в IE6 и IE7. если я удалю его, кнопка возврата перестанет работать – kd44