head と display:none に div を配置し、JavaScript を使用して表示する場合、これは機能しますか?
編集:
私はAJAXにロードされたものを持っています。そして、私の AJAX がサイトの「メイン」部分を変更するので、メタタグも変更したいと考えています。
head と display:none に div を配置し、JavaScript を使用して表示する場合、これは機能しますか?
編集:
私はAJAXにロードされたものを持っています。そして、私の AJAX がサイトの「メイン」部分を変更するので、メタタグも変更したいと考えています。
はい、できます。
いくつかの興味深い使用例があります: 一部のブラウザーとプラグインは、メタ要素を解析し、さまざまな値に対して動作を変更します。
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE">
<meta name="format-detection" content="telephone=no">
<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>
つまり、検索エンジンだけの問題ではありません。
次のようなものを使用します(jQueryを使用):
$('meta[name=author]').attr('content', 'New Author Name');
しかし、メタタグは通常、JavaScript を実行せずにドキュメントがロードされたときにのみスクレイピングされるため、ほとんど意味がありません。
たとえば、次のような jQuery 呼び出しでメタを変更できます。
$('meta[name=keywords]').attr('content', new_keywords);
$('meta[name=description]').attr('content', new_description);
Googleはajax コンテンツをand呼び出しでインデックス化すると言ったので、今のところは問題ないと思います。そして今、彼らはそれを検証することができます (ヘッドレス ブラウザでは、上記のページの「HTML スナップショットの作成」リンクを参照してください)。#!hashes
_escaped_fragment_
メタタグは dom の一部であり、アクセスして変更することができますが、検索エンジン (メタタグの主な消費者) は、javascript が実行されないため、変更を認識しません。ブラウザに影響を与えるメタタグを変更していない限り(更新が思い浮かびます)、これはほとんど役に立たないでしょうか?
$(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">');
});
$('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>
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';
}
各メタ タグの例への単純な 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, ");
}
はい、Javascript でメタタグを追加することは可能です。私は私の例でやった
しかし、削除する以外に変更する方法がわかりません。ところで、私の例では..「追加」ボタンをクリックすると、タグが追加され、ビューポートがそれぞれ変更されますが、元に戻す方法がわかりません(Androidでは削除します).. Androidにfirebugがあればいいのに私は何が起こっているのかを見ました。Firefox はタグを削除します。誰かがこれについて何か考えを持っている場合は、私の質問にその旨を記入してください。
いいえ、div は head 要素ではなく body 要素です
編集: SE が取得する唯一のものは、ベース HTML であり、ajax で変更されたものではありません。
これをインデックスに入れる
<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 ファイルです)。これらのファイルにはメタ タグがあり、すべてのドキュメントにはインデックスへのリンクがあり、すべてのサブファイルのインデックス ファイルにもメタ リンクがあります。
誰かがこれを行うためのより良い方法を知っていれば、追加をいただければ幸いです:)