相关疑难解决方法(0)

我可以将整个HTML文档加载到Internet Explorer中的文档片段中吗?

这是我一直遇到的一些困难.我有一个本地客户端脚本,需要允许用户获取远程网页并搜索结果页面的表单.为了做到这一点(没有正则表达式),我需要将文档解析为完全可遍历的DOM对象.

我想强调的一些限制:

  • 我不想使用库(比如jQuery).我需要在这里做太多的臃肿.
  • 在任何情况下都不应执行远程页面中的脚本(出于安全原因).
  • getElementsByTagName需要提供DOM API等.
  • 它只需要在Internet Explorer中工作,但至少在7中工作.
  • 让我假装我无法访问服务器.我这样做,但我不能用它.

我试过的

假设我在变量中有一个完整的HTML文档字符串(包括DOCTYPE声明)html,这是我到目前为止所尝试的:

var frag = document.createDocumentFragment(),
div  = frag.appendChild(document.createElement("div"));

div.outerHTML = html;
//-> results in an empty fragment

div.insertAdjacentHTML("afterEnd", html);
//-> HTML is not added to the fragment

div.innerHTML = html;
//-> Error (expected, but I tried it anyway)

var doc = new ActiveXObject("htmlfile");
doc.write(html);
doc.close();
//-> JavaScript executes
Run Code Online (Sandbox Code Playgroud)

我也尝试从HTML中提取<head><body>节点,并将它们添加到<HTML>片段内的元素,仍然没有运气.

有没有人有任何想法?

html javascript internet-explorer dom

42
推荐指数
1
解决办法
2万
查看次数

正则表达式提取HTML正文内容

我正在寻找一个正则表达式语句,让我从XHTML文档的body标签之间提取HTML内容.

我需要解析的XHTML将是非常简单的文件,例如,我不必担心JavaScript内容或<![CDATA[标签.

下面是我要解析的HTML文件的预期结构.由于我完全知道我将要使用的HTML文件的所有内容,因此这个HTML代码段几乎涵盖了我的整个用例.如果我能得到一个正则表达式来提取这个例子的主体,我会很高兴.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
    </title>
  </head>
  <body contenteditable="true">
    <p>
      Example paragraph content
    </p>
    <p>
      &nbsp;
    </p>
    <p>
      <br />
      &nbsp;
    </p>
    <h1>Header 1</h1>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

从概念上讲,我一直在尝试构建一个匹配内部正文内容的所有正则表达式字符串.有了这个,我会使用C#Regex.Split()方法来获取正文内容.我以为这个正则表达式:

((.|\n)*<body (.)*>)|((</body>(*|\n)*)
Run Code Online (Sandbox Code Playgroud)

...会有所作为,但它似乎与我在RegexBuddy中的测试内容完全无关.

html c# regex xhtml

22
推荐指数
3
解决办法
5万
查看次数

在ajax HTML响应中查找body标签

我正在进行ajax调用以获取内容并附加此内容,如下所示:

$(function(){
    var site = $('input').val();
    $.get('file.php', { site:site }, function(data){
        mas = $(data).find('a');
        mas.map(function(elem, index) {
            divs = $(this).html();
            $('#result').append('' + divs + '');
        })
    }, 'html');
});
Run Code Online (Sandbox Code Playgroud)

问题是,当我改变时a,body我什么也得不到(没有错误,只是没有HTML).我假设身体是一个像'a'的标签?我究竟做错了什么?

这对我有用:

 mas = $(data).find('a');
Run Code Online (Sandbox Code Playgroud)

但这不是:

 mas = $(data).find('body');
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery document-body

21
推荐指数
4
解决办法
2万
查看次数

标签 统计

html ×2

javascript ×2

ajax ×1

c# ×1

document-body ×1

dom ×1

internet-explorer ×1

jquery ×1

regex ×1

xhtml ×1