【问题标题】:Can i manipulate an external HTML document with JQuery?我可以使用 JQuery 操作外部 HTML 文档吗?
【发布时间】:2011-07-19 17:11:41
【问题描述】:

我想清理一个 HTML 文档(在 google 文档中创建),以便我可以在我的 CMS 上发布它。

我有一个字符串中的源文档,从 to ,带有标题、样式、正文等。我想提取正文内容并替换/消除一些标签。如果我可以使用 jQuery 来做到这一点,我认为它会比使用更复杂的 html 解析器更容易。

但是当我尝试获取文档的正文时,我没有得到可用的结果。我试过了:

var gdoc = "<html>...google document...</html>"
$(gdoc) //list of text nodes, can not rebuild to document or find body
$("body",gdoc) //empty list

这是可行的还是我完全错了? 您可以分享任何提示/参考资料吗?

【问题讨论】:

  • 由于安全原因,您无法从其他域访问文档
  • 您可以尝试在例如(隐藏的)iframe 中加载 HTML 字符串,然后使用 jQuery 访问它的 DOM
  • 我有一个字符串上的文档,问题似乎是获取整个正文内容(不仅仅是特定元素)。

标签: javascript jquery html dom sanitization


【解决方案1】:

试试这样:

var gdoc = '<html><body><div id="foo">Bar</div></body></html>';
var data = $('<div/>').html(gdoc).find('#foo').html();
alert(data);

Demo.

【讨论】:

  • 这是我想要做的,但是body标签似乎有一些特别之处。使用您的答案,我可以从内部 html 中获取元素,但是如果我想要整个正文内容,则在使用 "$('
    ').html(gdoc).find('body').html 时会得到 null ();"
【解决方案2】:

我相信你可以做你想做的事,但你的措辞不当。您可以从另一个文档中获取 HTML 并对其进行操作,但您不能操作外部文档。您可以使用

$.get("url", function() {
  //modify stuff here
});

【讨论】:

  • 问题不在于获取外部文档,而在于操作其内容。
猜你喜欢
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
相关资源
最近更新 更多