HTML-从其他站点提取文本

时间:2019-02-10 22:23:29

标签: javascript html

我只是进入HTML / JavaScript,向大家提出一个问题。

我正在尝试让我的主页从Web服务器中拉出该站点的标题。如果我转到127.0.0.1/?q=name,它将返回,仅说“ Foo”。页面上只有明文“ Foo”。

我希望我的网站在加载时动态地将其拉出。这是我使用iFrame尝试过的脚本,但似乎可以移动所有内容。我在想这个吗?

<h1>Welcome to 
    <iframe src="http://127.0.0.1:8080/?q=name" name="targetframe" allowTransparency="true" scrolling="no" frameborder="0"></iframe>
</h1>

Thank you for visiting !

谢谢!!!

2 个答案:

答案 0 :(得分:1)

如果您试图从同一个域中获取纯文本信息,则iframe听起来可能有点过头了-您可以考虑改用普通的网络请求,并在响应时填充标准元素(例如<span>回来:

<h1>
  Welcome to <span id="name-span"></span>
</h1>

使用JS:

fetch('http://127.0.0.1:8080/?q=name')
  .then(res => res.text())
  .then((textResponse) => {
    document.querySelector('#name-span').textContent = textResponse;
  });

要以这种方式填充多个项目,您可以考虑改用数组,例如:

const qs = ['name', 'age'];
qs.forEach((q) => {
  fetch('http://127.0.0.1:8080/?q=' + q)
  .then(res => res.text())
  .then((textResponse) => {
    document.querySelector('#' + q + '-span').textContent = textResponse;
  });
});

请注意,如果您要获取的信息位于同一域中,则fetch可以正常工作-否则,您必须像使用的那样使用有点笨拙的iframe,或将请求从服务器退回,否则会遇到CORS问题。

答案 1 :(得分:0)

TL; DR

您不能仅从for $langs in subsequence($g:collection.customers//lang[.=$deletelang],1,30000) 访问外部资源,出于安全原因而进行了此限制。

可能的解决方案

您已经使用过Javascript,所以我假设您知道iframe

您可以尝试使用JSONP,但是在那种情况下,您也需要在服务器端实现此概念,以便能够提供the CORS policy参数。

如果请求是在同一个域中提出的,则您可以只使用callback的任何时间

例如,可以借助XMLHttpRequest来完成。

JQuery