Pertanyaan Apakah mungkin menggunakan JavaScript untuk mengubah meta-tag halaman?


Jika saya meletakkan div di kepala dan menampilkan: tidak ada, daripada menggunakan JavaScript untuk menampilkannya, apakah ini akan berfungsi?

Edit:

Saya memiliki barang yang dimuat di AJAX. Dan ketika AJAX saya mengubah bagian "utama" dari situs, saya juga ingin mengubah meta-tag.


74
2018-04-02 19:33


asal


Jawaban:


Ya, Anda bisa melakukannya.

Ada beberapa kasus penggunaan yang menarik: Beberapa browser dan plugin menguraikan elemen meta dan mengubah perilaku mereka untuk nilai yang berbeda.

Contoh

Skype: Matikan parser nomor telepon

<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE">

iPhone: Matikan parser nomor telepon

<meta name="format-detection" content="telephone=no">

Google Chrome Frame

<meta http-equiv="X-UA-Compatible" content="chrome=1">

Definisi viewport untuk perangkat seluler

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Yang ini bisa diubah oleh JavaScript. Lihat: Perbaikan untuk bug skala penayangan iPhone

Deskripsi meta

Beberapa agen pengguna (Opera misalnya) menggunakan deskripsi untuk bookmark. Anda dapat menambahkan konten yang dipersonalisasi di sini. Contoh:

<!DOCTYPE html>
<title>Test</title>
<meta name="description" content="this is old">
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.js'></script>

<button>Change description</button>

<script type='text/javascript'>
$('button').on('click', function() {
    // Just replacing the value of the 'content' attribute will not work.
    $('meta[name=description]').remove();
    $('head').append( '<meta name="description" content="this is new">' );
});
</script>

Jadi, ini bukan hanya tentang mesin telusur.


143
2018-04-02 20:08



Anda akan menggunakan sesuatu seperti (dengan jQuery):

$('meta[name=author]').attr('content', 'New Author Name');

Tapi itu akan sangat berguna karena meta tag biasanya hanya tergores ketika dokumen dimuat, biasanya tanpa mengeksekusi JavaScript.


61
2018-04-02 19:41



Ya itu.

Misalnya. untuk mengatur meta-deskripsi:

document.querySelector('meta[name="description"]').setAttribute("content", _desc);

58
2018-03-17 22:52



Anda dapat mengubah meta dengan, misalnya, panggilan jQuery, seperti ini:

$('meta[name=keywords]').attr('content', new_keywords);
$('meta[name=description]').attr('content', new_description);

Aku pikir itu tidak penting untuk saat ini, sejak google kata bahwa mereka akan mengindeks konten ajax melalui #!hashes dan _escaped_fragment_ panggilan. Dan sekarang mereka bisa verifikasi itu (bahkan secara otomatis, dengan browser tanpa kepala, lihat tautan 'Creating HTML Snapshots' pada halaman yang disebutkan di atas), jadi saya pikir itu adalah cara untuk orang-orang hardcore SEO.


32
2017-11-23 01:29



Seharusnya mungkin seperti ini (atau menggunakan jQuery suka $('meta[name=author]').attr("content");):

<html>
<head>
<title>Meta Data</title>
<meta name="Author" content="Martin Webb">
<meta name="Author" content="A.N. Other">
<meta name="Description" content="A sample html file for extracting meta data">
<meta name="Keywords" content="JavaScript, DOM, W3C">

</head>

<body>
<script language="JavaScript"><!--
if (document.getElementsByName) {
  var metaArray = document.getElementsByName('Author');
  for (var i=0; i<metaArray.length; i++) {
    document.write(metaArray[i].content + '<br>');
  }

  var metaArray = document.getElementsByName('Description');
  for (var i=0; i<metaArray.length; i++) {
    document.write(metaArray[i].content + '<br>');
  }

  var metaArray = document.getElementsByName('Keywords');
  for (var i=0; i<metaArray.length; i++) {
    document.write(metaArray[i].content + '<br>');
  }
}
//--></script>
</body>

</html>

11
2018-04-02 19:40



meta-tag adalah bagian dari dom dan dapat diakses dan -i guess-changed, tetapi search-engines (konsumen utama meta-tag) tidak akan melihat perubahan karena javascript tidak akan dieksekusi. jadi kecuali Anda mengubah meta-tag (penyegaran yang terlintas dalam pikiran) yang memiliki implikasi di peramban, ini mungkin sedikit gunanya?


9
2018-04-02 19:39



$(document).ready(function() {
  $('meta[property="og:title"]').remove();
  $('meta[property="og:description"]').remove();
  $('meta[property="og:url"]').remove();
  $("head").append('<meta property="og:title" content="blubb1">');
  $("head").append('<meta property="og:description" content="blubb2">');
  $("head").append('<meta property="og:url" content="blubb3">');
});

9
2018-04-17 17:26