使用纯JavaScript获取网站的body元素

85
我想检索以下网站的正文内容http://sports.espn.go.com/nhl/bottomline/scores?nhl_s_left1,并将其存储在一个字符串中。我知道并已成功使用php检索此内容,但我想限制使用javascript。有没有一种方法只需将网站中的字符串复制并将其存储在一个变量中?

从远程页面获取内容是有问题的,但您可以查看此解决方案:https://dev59.com/F3A75IYBdhLWcg3w1s32#3076648。 - damian004
2
嗨,Zak,我知道已经过去8年了,但是,也许考虑更改接受的答案?我不喜欢因为它们基本上是错误的而对旧答案进行投票。 =\ - HoldOffHunger
3个回答

174

尽管 @Brendan 的回答被接受并且正确,

但是使用

标签获取body元素的方法实现简单、短小且速度足够快。

document.body;

它做的与我们可以使用document.getElementsByTagName('body')[0];相同,并且应该在答案列表中。


为了更加简洁地使用它,只需将其设置为变量 var body = document.body; - Loosie94
1
...或者使用document.body.outerHTML将其作为字符串获取 - SAMPro

68

试一下这个:

<script>
window.onload = function get_body() {

  body = document.getElementsByTagName('body')[0];
}

</script>

请允许我解释一下。使用window.onload是为了在执行脚本之前加载HTML。即使只有一个body标签,这也是我使用的方法^。基本上,它找到了第一个body标签,然后我告诉它只获取body元素本身,而不是所有其他属性和子节点,使用索引[0]。如果您想获取与body标签相关的所有内容,则可以去掉0索引。希望这有所帮助!


49
或者只需使用 document.body - Felix Kling
是的,但如果他只想要标签本身,我已经提供了这个选项 @FelixKling - Brendan
9
哦?document.body返回的值与document.getElementsByTagName('body')[0]相同,而且更短。 - Felix Kling
@FelixKing 我明白你想说什么!谢谢 :) - Zak

5

另一个选择:

let body = document.querySelector("body");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接