Как прочитать файл с помощью jquery и получить содержимое головы и тела? - PullRequest
1 голос
/ 19 марта 2012

Я пытаюсь прочитать html-файл и получить содержимое тегов head и body с помощью jquery.Но мне не повезло.Это код, который я использую.Мне удалось найти содержание идентификатора или класса.Но не с метками головы и тела?Надеюсь, вы, ребята, можете помочь мне в ближайшее время.Спасибо.

$.get(file, function(response) { alert(response);
        alert($(response).filter('body').html());
                    //is null
                  alert($(response).filter('head').html());
                    //is null
     });

1 Ответ

0 голосов
/ 19 марта 2012

Я использовал функцию ручной фильтрации.По сути, он преобразует заголовки, htmls и мета-теги в div и абзацы, чтобы они не терялись по пути.Это была моя функция, вы можете адаптировать ее для чего-то другого.

function filterInput(sx){

    var t = new Date().getTime();
    var strip_only = function (input,only){only=(((only||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join('');var tags=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,commentsAndPhpTags=/<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;return input.replace(commentsAndPhpTags,'').replace(tags,function($0,$1){return only.indexOf('<'+$1.toLowerCase()+'>')===-1?$0:'';});};

    sx = sx.replace(new RegExp('<html.*?>','gmi'),'').replace(new RegExp('</html>','gmi'),'');
    /* strip out head & body tags */
    sx = sx.replace(new RegExp('<head.*?>','gmi'),'<div id="u_'+t+'_head">')
        .replace(new RegExp('</head>','gmi'),'</div>')
        .replace(new RegExp('<body.*?>','gmi'),'')
        .replace(new RegExp('</body>','gmi'),'');
    /* replace title tag */
    sx = sx.replace(new RegExp('<title.*?>','gmi'),'<p id="u_'+t+'_title">')
        .replace(new RegExp('</title>','gmi'),'</p>');
    /* replace meta tags */
    sx = sx.replace(new RegExp('<meta','gmi'),'<p');
    sx = strip_only(sx,'<img><link><style>');

    /* wrap */
    sx = $("<div>"+sx+'</div>');

    return sx;
}
...