javascript - HTML - 从另一个站点提取文本
问题描述
我刚刚进入 HTML/JavaScript 并有一个问题要问你们。
我试图让我的主页从我的网络服务器中提取所述网站的标题。如果我去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 !
谢谢 !!!
解决方案
如果您尝试从同一域获取纯文本信息,则 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 问题。
推荐阅读
- arrays - Angular ngFor 乱序
- sql - SQL 查询 - 消除记录
- listview - 使用键盘导航 ListView 而不选择 (UWP)
- python - 如何在 python 中使用电源设置 GUID 并在 python 中获取监视器和显示的状态
- oracle - Oracle forms 6i 将图像从一个文件夹复制到另一个文件夹并使用 host 命令重命名
- c# - 是否有必要在 Xamarin Forms App 的每个类上方添加 [XamlCompilation(XamlCompilationOptions.Compile)]?
- javascript - ReactJS如何仅在向下滚动并在页面上到达组件时才呈现组件?
- css - 如何在 CSS 中显示背景颜色不起作用?
- python-3.x - 统计频繁字符串 + python3.7
- dotcms - 布局即服务 REST API 不适用于多语言页面