Привет, я задавался вопросом, может ли кто-нибудь помочь с этой проблемой PHP.
Можно ли использовать текст в теге H2 и использовать его для динамического заполнения заголовка страницы.
Я также хотел бы иметь возможность использовать эту же технику, чтобы добавить текст H2 в мета-описание. Может ли кто-нибудь помочь?
Это похоже на то, что jQuery превзойдет:
<script type='text/javascript' src='jquery-1.4-min.js'></script> <script type="text/javascript"> $(document).ready(function() { document.title = $('h2:first').text(); }); </script>
Чтобы изменить метаданные, вы сделаете больше того же. Я настоятельно рекомендую jQuery – Novice to Ninja как удивительный способ проникнуть в jQuery с большой глубиной.
<html> <head> <meta description="" /> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $('meta:first').attr('description', $('h2:first').text()); alert($('meta:first').attr('description')); }); </script> </head> <body> <h2>Testing 123</h2> </body> </html>
Если ваш текст h2 динамически сделан, другие части вашей веб-страницы также могут быть динамически созданы. Например, если у вас есть переменная $ a = "My Text"
<?php $a = "My Text" ?> <html> <head> <title><?php echo $a;?></title> </head> <body> <h2><?php echo $a;?></h2> </body> </html>
Используя этот метод, вы можете определить текст других частей веб-страницы.
Для тех, кто ищет несколько более динамичный метод, который одновременно выполняет мета и название, и использует некоторые откидывания:
<script type="text/javascript"> $(document).ready(function() { $title = ''; if($('h1:first').text() != '') { $title = $('h1:first').text(); document.title = document.title + " | " + $title; $('meta:first').attr('content', $title); } else if($('h2:first').text() != ''){ $title = $('h2:first').text(); document.title = document.title + " | " + $title; $('meta:first').attr('content', $title); } else if($('h3:first').text() != ''){ $title = $('h3:first').text(); document.title = document.title + " | " + $title; $('meta:first').attr('content', $title); } else if($('.panel-heading:first').text() != ''){ $title = $('.panel-heading:first').text(); document.title = document.title + " | " + $title; $('meta:first').attr('content', $title); } }); </script>
Это приведет к конкатенации сгенерированного заголовка в конец вашего текущего заголовка. Он также устанавливает описание в одно и то же значение.
У вас должен быть метатег описания в качестве первого метатега в вашем заголовке, чтобы это работало для установки метафайла описания. Если это не так, вы можете изменить селектор $('meta:first')
, чтобы выбрать метатег описания.
Я использую bootstrap, поэтому первый заголовок панели – это мой случай с отсрочкой: $('.panel-heading:first')
, измените это, чтобы отобразить соответствующее желаемое отступление, если на текущей странице нет тегов заголовков.
Когда все остальное не удастся, этот скрипт оставит значение вашего названия по его текущему значению.