137

head と display:none に div を配置し、JavaScript を使用して表示する場合、これは機能しますか?

編集:

私はAJAXにロードされたものを持っています。そして、私の AJAX がサイトの「メイン」部分を変更するので、メタタグも変更したいと考えています。

4

20 に答える 20

161

はい、できます。

いくつかの興味深い使用例があります: 一部のブラウザーとプラグインは、メタ要素を解析し、さまざまな値に対して動作を変更します。

Skype: 電話番号パーサーをオフにする

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

iPhone: 電話番号パーサーをオフにする

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

Google Chrome フレーム

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

モバイル デバイスのビューポート定義

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

これは JavaScript で変更できます。参照: iPhone ビューポート スケール バグの修正

メタ記述

一部のユーザー エージェント (Opera など) は、ブックマークの説明を使用します。ここにパーソナライズされたコンテンツを追加できます。例:

<!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>

つまり、検索エンジンだけの問題ではありません。

于 2010-04-02T20:08:23.583 に答える
70

次のようなものを使用します(jQueryを使用):

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

しかし、メタタグは通常、JavaScript を実行せずにドキュメントがロードされたときにのみスクレイピングされるため、ほとんど意味がありません。

于 2010-04-02T19:41:04.473 に答える
33

たとえば、次のような jQuery 呼び出しでメタを変更できます。

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

Googleはajax コンテンツをand呼び出しでインデックス化すると言ったので、今のところは問題ないと思います。そして今、彼らはそれを検証することができます (ヘッドレス ブラウザでは、上記のページの「HTML スナップショットの作成」リンクを参照してください)。#!hashes_escaped_fragment_

于 2010-11-23T01:29:25.210 に答える
13

メタタグは dom の一部であり、アクセスして変更することができますが、検索エンジン (メタタグの主な消費者) は、javascript が実行されないため、変更を認識しません。ブラウザに影響を与えるメタタグを変更していない限り(更新が思い浮かびます)、これはほとんど役に立たないでしょうか?

于 2010-04-02T19:39:15.473 に答える
11
$(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">');
});
于 2014-04-17T17:26:33.787 に答える
11

$('meta[name=author]').attr("content");次のように(または jQuery を使用して)次のようにできるはずです。

<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>
于 2010-04-02T19:40:45.673 に答える
5
var metaTag = document.getElementsByTagName('meta');
for (var i=0; i < metaTag.length; i++) {
    if (metaTag[i].getAttribute("http-equiv")=='refresh')
        metaTag[i].content = '666';
    if (metaTag[i].getAttribute("name")=='Keywords')
        metaTag[i].content = 'js, solver';
}
于 2014-03-20T15:21:02.190 に答える
2

各メタ タグの例への単純な add および div 属性

<meta id="mtlink" name="url" content="">
<meta id="mtdesc" name="description" content="" />
<meta id="mtkwrds" name="keywords" content="" />

exの通常のdiv変更のようになりました。クリック

<a href="#" onClick="changeTags(); return false;">Change Meta Tags</a>

関数はjQueryでタグを変更します

function changeTags(){
   $("#mtlink").attr("content","http://albup.com");
   $("#mtdesc").attr("content","music all the time");
   $("#mtkwrds").attr("content","mp3, download music, ");

}
于 2013-01-26T02:54:47.810 に答える
1

はい、Javascript でメタタグを追加することは可能です。私は私の例でやった

Android はメタタグの削除を尊重していませんか?

しかし、削除する以外に変更する方法がわかりません。ところで、私の例では..「追加」ボタンをクリックすると、タグが追加され、ビューポートがそれぞれ変更されますが、元に戻す方法がわかりません(Androidでは削除します).. Androidにfirebugがあればいいのに私は何が起こっているのかを見ました。Firefox はタグを削除します。誰かがこれについて何か考えを持っている場合は、私の質問にその旨を記入してください。

于 2010-09-02T22:42:26.303 に答える
1

いいえ、div は head 要素ではなく body 要素です

編集: SE が取得する唯一のものは、ベース HTML であり、ajax で変更されたものではありません。

于 2010-04-02T19:34:51.610 に答える
0

これをインデックスに入れる

<link rel="opengraph" href="{http://yourPage.com/subdomain.php}"/>

これを ajaxfiles og:type"og:title"og:description および og: image に含める

これも追加します

<link rel="origin" href={http://yourPage.com}/>

次に、ajaxCall の後に js を追加します

FB.XFBML.parse();

編集: その後、正しいタイトルと画像を txt/php douments で facebook に表示できます (私のものは拡張子として .php という名前が付いていますが、より多くの txt ファイルです)。これらのファイルにはメタ タグがあり、すべてのドキュメントにはインデックスへのリンクがあり、すべてのサブファイルのインデックス ファイルにもメタ リンクがあります。

誰かがこれを行うためのより良い方法を知っていれば、追加をいただければ幸いです:)

于 2015-11-24T04:03:52.490 に答える