2009-06-12 5 views
2

リモートのxhtmlページのインラインスタイルのコンテンツを読み込もうとしています。以前はloadを使っていましたが、bodyタグの中にcssがロードされているので動作しません。したがって、私は自分のページのheadタグにスタイルを追加しようとしています。リモートページのスタイルタグを選択していますか?

問題は、jQueryを使用してスタイルタグを選択できないことです。私のコードは次のとおりです。

  jQuery.get(contenturl, function(data) { 
       var css = jQuery(data).find('style').html(); 
       alert(css); 
      }); 

css変数は常にnullです。何か案は?

おかげで、 ピート

+0

これは非常に可能です。私がリモートと言うとき、私のサーバー上では、同じドメインを意味します。上記の例でget要求は成功しますが、何らかの理由でスタイルタグを選択できません。私はjQueryを初めて使うので、要素を選択する方法に何か問題があると思います。 –

答えて

1

次のビデオチュートリアルでは、どのようにセットアップローカルのphpファイルを、この非常に事を行うために実証

のjQuery(htmlの、[のownerDocument])

属性がない単純な要素(例: "<div />")は、 document.createElementによって作成されます。他のすべての場合は、文字列 をdiv要素の.innerHTMLプロパティに代入することによって解析されます。 HTML文字列は、HTML、頭部、胴体、 またはタイトル要素としてdiv要素の中に無効である 要素を含めることはできません。

したがって、ページの完全なHTMLをjQuery()関数に渡すことはできません。 (それは実際にOperaで動作しますが、が、私はあなたがクロスブラウザのソリューションをしたいと思います。)

は、私はそのような単純な正規表現を使用して<style>タグからCSSを取得してお勧めします:

jQuery.get(contenturl, function(data) { 
    var styles = data.match(/<style.*?>[\s\S]*?<\/style>/ig); 
    $("head").append(styles.join("")); 
}); 

これもする必要がありますDOMツリー全体を作成するよりずっと高速です。

+0

ありがとう!あなたは私をとても助けてくれました。私はこのメソッドを使用して私のフレームワークページにもリモートJavaスクリプトをインポートしています。 –

関連する問題