他の誰かがこのエラーメッセージを見たことがあります。グーグルで簡単にチェックしてもあまり表示されません。
4 に答える
あなたはおそらくこのようなことをしようとしています...
alert($("#myElement").tagName);
あなたはこれをするべきです...
alert($("#myElement")[0].tagName);
ページがレンダリングされた後にスクリプトを実行していることを確認してください。スクリプトがページの上部にあり、すぐに実行され、DIV がそのスクリプトの下にある場合、DIV はまだ存在しません。
IE でしか表示されない場合は、DivX Web プラグインのバグである可能性があります。
http://drupal.org/node/1038058
問題は DivX サイトで確認されており、「次のリリースで修正済み」(2011 年 4 月) と書かれています。
http://labs.divx.com/node/16824
基本的に、このバグは、DivX が el.appendChild() 関数を、タグ名を小文字にしようとするインターセプトに置き換えますが、それがテキスト ノードであるかどうかを確認することを気にしません。のようなことをしようとすると、jQuery が壊れます$('body').append('hi!')
。さらに、SWFObject を壊す要素を返すのに失敗します。
回避策は、テキスト ノードまたは複数の最上位要素で append() を呼び出さないようにすることです。一連のアイテムを追加する場合:
append($('<div>hi</div><div>there</div>'))
暗黙のテキストノードを避けるために、それらを最上位の div でラップしてください。
append($('<div><div>hi</div><div>there</div></div>'))
appendChild
壊れた場合の完全な回避策は次のとおりです。同じアプローチを使用でき、バグを共有していますinsertBefore
。replaceChild
Divx JS は、ページがロードされてからしばらく挿入されるため、これをポーリングすることをお勧めします。
window.fixDivxPlayerBug = function () {
var b = document.getElementsByTagName('body')[0];
if ( window['ReplaceVideoElements'] && ! b.appendChildDivx ){
b.appendChildDivx = b.appendChild;
b.appendChild = function (el) {
if( el.tagName == null) {
var wrap = document.createElement('div');
wrap.appendChild(el);
b.appendChildDivx(wrap);
}
else {
b.appendChildDivx(el);
}
return el;
};
}
};
申し訳ありませんが、これは私の側では、中途半端な質問でした。私は .js ファイルを調べて、コードのブロック全体を削除しています。私はそれを1つの特定の.jsファイルに分離しました。
この質問を読んで返信してくれてありがとう。