Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.07.2017, 20:58
Аспирант
Отправить личное сообщение для Stenli Посмотреть профиль Найти все сообщения от Stenli
 
Регистрация: 25.06.2017
Сообщений: 36

Нужно из всего кода оставить только содержимое BODY, но body вырезается
Есть код под спойлером:

$(document).ready(function() {

    var Final = '';

    $('#sendTo').on('click', function () {

        var insertData = $('#insertArea').val();
        var div = $("<div>", {html : insertData});

// only body content with internal tags

        var bodyVal = $('body', div).html();
        $(div).empty();
        $(div).remove();
        $(div).html('bodyVal');

// find and replace all href links to {{ $landing_url }}

        $('a', div).attr("href","{{ $landing_url }}");

// find and replace all img to {{ $landing_url }}

        $('img', div).each(function (i,el) {
            var srcVal=el.src.substr(el.src.lastIndexOf("/")+1,el.src.length);
            $(this).attr("src","{{ asset('layers/'. $template_folder .'/img/" + srcVal + "') }}");
        });

// delete tag script, iframe, noscript with content

        $('script', div).empty();
        $('noscript', div).empty();
        $('iframe', div).empty();

        $('script', div).remove();
        $('noscript', div).remove();
        $('iframe', div).remove();

// display result

        Final += "@include('layers.header')<body>" + div.html() + "@include('layers.footer')";
        $('#pastArea').val(Final);

    });

});

Задумка такая, что из:

<doctype! html>
<html>
<head></head>
<body>
<div></div>
</body>
</html>

Должно оставаться это:
<div></div>

Но при конвертации исчезают теги <head>, <body>, <html> при этом все их содержимое остается, хотя я jQuery такого не просил. А потому я не могу извлечь содержимое <body>.

Что не так? Догадываюсь, что дело в 7,8 строке кода, но я там не очень могу понять.

Последний раз редактировалось Stenli, 31.07.2017 в 20:41.
Ответить с цитированием
  #2 (permalink)  
Старый 30.07.2017, 21:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Stenli,
подожду телепата ...
Ответить с цитированием
  #3 (permalink)  
Старый 30.07.2017, 21:30
Аспирант
Отправить личное сообщение для Stenli Посмотреть профиль Найти все сообщения от Stenli
 
Регистрация: 25.06.2017
Сообщений: 36

Сообщение от рони Посмотреть сообщение
Stenli,
подожду телепата ...
Профессор, продуктивнее будет если скажете, где я сморозил или что не понятно. Зачем пальцы-то гнуть?
Ответить с цитированием
  #4 (permalink)  
Старый 30.07.2017, 21:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Stenli,
я не понимаю, что вы хотите сделать.
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2017, 21:41
Аспирант
Отправить личное сообщение для Stenli Посмотреть профиль Найти все сообщения от Stenli
 
Регистрация: 25.06.2017
Сообщений: 36

Понял, осознал.

Это ответвление темы этой: Обработка определенных тегов в тексте помещенном в textarea (для оглавления)

Суть такая, что в первый textarea помещается код HTML, а во втором textarea должен появится сконвертированный, очищенный код.

То есть я вставляю код
<doctype! html>
<html>
<head></head>
<body>
<div></div>
</body>
</html>


jQuery думает и выдает это, удаляя все ненужное:
<div></div>


Только jQuery почему-то удаляет теги, которые я не просил удалять. В частности тег <body>.
Ответить с цитированием
  #6 (permalink)  
Старый 30.07.2017, 21:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Stenli,
ок -- видимо браузер считает что одного body на страницу достаточно.
Ответить с цитированием
  #7 (permalink)  
Старый 30.07.2017, 21:55
Аспирант
Отправить личное сообщение для Stenli Посмотреть профиль Найти все сообщения от Stenli
 
Регистрация: 25.06.2017
Сообщений: 36

Мы сегодня похоже не понимаем друг друга :-)

Браузер тут не должен ничего понимать, мне кажется. Все изменения происходят не на сайте, а внутри формы textarea - объяснил как мог.

Это нечто похожее, как вы мне советовали, когда был вопрос об автооглавлении (пример по ссылке выше). Только тут не оглавление сделать, а вытащить некоторое содержимое.

Последний раз редактировалось Stenli, 30.07.2017 в 21:59.
Ответить с цитированием
  #8 (permalink)  
Старый 30.07.2017, 22:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Stenli,
пока не знаю
Ответить с цитированием
  #9 (permalink)  
Старый 31.07.2017, 00:17
Аспирант
Отправить личное сообщение для Stenli Посмотреть профиль Найти все сообщения от Stenli
 
Регистрация: 25.06.2017
Сообщений: 36

Сообщение от рони Посмотреть сообщение
Stenli,
ок -- видимо браузер считает что одного body на страницу достаточно.
Кажется вник в эту фразу. А потому стал искать по просторам, нашел схожую проблему у одного человека. У него частично получилось сделать то, что нужно - извлечь содержимое BODY.

Только помогите разобраться, как он это провернул: ссыль

Или тут что-то нарешали, но я не пойму как: ссыль

Последний раз редактировалось Stenli, 31.07.2017 в 00:24.
Ответить с цитированием
  #10 (permalink)  
Старый 31.07.2017, 01:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Stenli,
ждите специалиста...
Сообщение от Stenli
нужно - извлечь содержимое BODY.
Сообщение от Stenli
jQuery думает и выдает это, удаляя все ненужное:
<div></div>
<div></div> это же и есть содержимое или вам нужно что-то иное?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цена с рублями, нужно оставить только цифры alexmixaylov jQuery 11 05.02.2014 12:11