如何使用 PHP 或 JavaScript 在网页正文中显示描述元标记的内容?

Posted

技术标签:

【中文标题】如何使用 PHP 或 JavaScript 在网页正文中显示描述元标记的内容?【英文标题】:How can I use either PHP or JavaScript to display the contents of the description meta tag in the body text of a web page? 【发布时间】:2021-01-02 19:39:07 【问题描述】:

我的网站以包含元信息、页面标题和页脚的 class.page.php 构造函数/析构函数开始。

<?php
class page
    private $title;
    private $pageDescription;
    
    public function __construct($title, $pageDescription)
    $this->title = $title;
    $this->pagedescription = $pageDescription;

<!DOCTYPE html>
<html lang="en">
<head>
<title>Page Title</title>
<meta name="description" content="My Page Description;">
//  … etc …
    function __destruct()
    
//  … etc …
    

?>

每个页面都以这个 PHP 脚本开头,需要 class.page.php 并将该页面的标题和描述插入到头部。

<?php
require_once("inc/class.page.php");
// Insert title, page description.
$page = new page('My Page Title','My Page Description');
?>

我的目标是能够从元标记中插入描述内容……

<meta name="description" content="I want this also to show up between the h2 tags.">

…在正文中的h2 标签之间,即:

<h2>How do I insert the page description here?</h2>

我能够让页面标题显示在h1 标签之间,如下所示,但我无法弄清楚如何对元描述内容做类似的事情。

<h1 id="pagetitle"></h1>
<script>
    document.getElementById('pagetitle').innerHTML = document.title;
</script>

我更愿意为此找到一个 PHP 解决方案(就此而言,对于页面标题也是如此)。但我也很乐意使用 javascript 来做到这一点。

【问题讨论】:

【参考方案1】:

您可以使用meta[name=description] 选择器选择&lt;meta name="description"&gt; 元素:

const content = document.querySelector('meta[name=description]').getAttribute('content');
document.getElementById('pagetitle').textContent = content;
<meta name="description" content="I want this also to show up between the h2 tags.">
<h1 id="pagetitle"></h1>

还记得在故意插入 HTML 标记时只使用innerHTML - 如果您只想插入文本,请改用textContent。 (innerHTML 不太合适,速度较慢,如果设置的内容不可信,可以允许任意代码执行)

【讨论】:

以上是关于如何使用 PHP 或 JavaScript 在网页正文中显示描述元标记的内容?的主要内容,如果未能解决你的问题,请参考以下文章

使用php另存为网页

如何使用 Javascript 或 Jquery 获取网页图标/ Apple 触摸图标和标题?

如何使用javascript从网页中获取点击或选择的文本? [复制]

如何使用 PHP 下载 _rendered_ 网页?

如何使用javascript或php检测窗口关闭事件[重复]

如何在 HTML 或 JAVASCRIPT 中制作登录认证页面