2011-07-16 27 views
0

<head>タグにメタタグを追加しようとしましたが、今ではhtmlタグに何も追加できないことが判明しました。 <body><p><h1>、それ以外はdiv idとクラスで正常に動作します。jquery appendとjavascript htmlタグでappendChildが機能しない期間

は、ここでのhtml

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<script type="text/javascript" src="jquery-1.6.1.min.js"></script> 
<script type="text/javascript" src="append.js"></script> 
<title>appendTest</title> 
</head> 
<body> 

<div id="test"> 
<p> 
Hello World 
</p> 
</div> 

</body> 
</html> 

だとここで私は両方のdivのためのp#テストを追加し、appendTo jqueryの機能を試してみました、私は今

function loadmeta(){ 
var meta = "<meta name='og:title' content='some random content' />"; 
document.getElementsByTagName('head').item(0).appendChild(meta); 
} 

window.onload = function(){ 
loadmeta(); 
} 




/*jquery style*/ 

$(document).ready(function(){ 
$('html').append('meta name="testing" content="some content"/>'); 
}); 

$(document).ready(function(){ 
$('meta name="testing" content="some content"/>').appendTo('html'); 
}); 

を試してみたappend.js例です両方の機能で追加することができます。しかし、私は頭、体、Pで試してみて、それはそれらのいずれかで動作しません。

私はテキストとCSSのスタイルを追加して前に追加して問題がなかったので、私のサーバー上で何らかのセキュリティ設定が停止しているのだろうかと疑問に思っています。

firebugはエラーを発生させず、FFとChromeで試してみました。

私は愚かな気分になりたくはありませんが、誰かが私が作ったばかげたミスを見たら私は大好きです。あなたのコードの

答えて

1

私はあなたのメタタグは、ページのロード

+0

あなたとpaulProの間にありがとう、私は今JavaScriptを使ってこれを達成する2つの方法を見ています。ソースコードで見た限りでは、両方の方法で同じ状況になります。火かき棒を見るときだけ表示されます。これは、たとえメタタグの挿入後にページを再解析するようアプリケーションに強制しても動作するのではないかと思います。ソースを表示しているときにアプリケーションが表示されない場合、アプリケーションが新しいタグを再解析で表示するかどうかは疑問です。いずれにせよ、皆さんは私の質問に答えました。ありがとう – Ian

2

なし

おかげで正しいです:

は、JavaScriptの唯一のバージョンのappendChildのためのすべての

まず、ノードではなく、HTMLの文字列を期待 。

var meta = "<meta name='og:title' content='some random content' />"; 
var head = document.getElementsByTagName('head')[0]; 
head.innerHTML = meta+head.innerHTML; 

あなたはjQueryのメソッドは、両方の開口部のHTMLタグが不足している:

あなたのような何かを行うことができます。

+0

なぜcreateElementのを使用しないで後に解釈されますさえわからないしかしあなたは正しく

function loadmeta(){ var meta = document.createElement("meta"); meta.name='og:title'; // or meta.setAttribute("name","og:title"); meta.content='some random content'; document.getElementsByTagName('head')[0].appendChild(meta); } 

要素を作成していない - あなたは私の知る限りはあります何をすべきかブラウザに応じて、innerHTMLをinnerHTMLとしてブラウザに表示するように変更してください。 – mplungjan

+0

ありがとうございます。あなたが提案するjavascriptメソッドは私が思うように動作します。ソースを表示しているページを読み込んだ後、新しいメタタグが表示されると想定していましたが、私はそれをファイヤーバグでしか見ることができません。 jqueryスタイル関数については、私は 'html'ではなく 'head'を入れようとしていましたが、まだ、 'opening tags'はどういう意味ですか?どこでも私は例を見てきました、それは単純に$( '頭')でした。append( 'text');頭にいくつかのテキストを追加すると、頭のタグの間にそれを置くと思っていた。 htmlタグと同じ概念です。それ以上のことはありますか? – Ian

+0

私はメタよりも前にサインが少ないことを意味します。あなたは 'meta name ...'を追加したい場所に ' Paulpro

関連する問題