7

jQuery入力ドキュメントとして使用するHTMLの文字列があります。

// the variable html contains the HTML code

jQuery( html ).find( 'p' ).each( function( index, element ) {
    // do stuff
});

ただし、画像が(変数に)存在しないというエラーが発生し続けますhtml。HTMLの画像には、ホスト上の画像に対応しない相対URLが含まれているため、当然、画像が見つからないため、コンソールで404エラーが発生します。

jQueryが画像をロードしないようにするjQueryの方法はありますか?そうでない場合は、すべての画像を検索し、jQuery以外を使用してsrcを置き換える必要があります。これは、jQueryが便利な場所であるため少し悲しいです:p


編集:

ステップバイステップで説明します。

html別のサイトのHTMLコードを含む変数、があります。そのHTMLでアクションを実行したいので、その変数をjQueryコンストラクターに入れました。

jQuery( html );

この時点で、HTMLソースの画像は相対的であるため、404エラーが発生します。それらは私のホストにある画像に対応していません。

  • まだエラーが発生するため、jQueryを使用してsrcタグを削除できません
  • src値を変更するためにJavaScriptを少し書くのは、ばかげています。これが私がjQueryを使用する理由です

繰り返しになりますが、私が求めているのは、jQueryが提供されたソースに画像をロードすることを回避する設定などがあるかどうかだけです。

ありがとうございました。

4

2 に答える 2

0

html を取得した直後 - src を別のもの () に置き換えます。(単純な文字列置換)

これにより、コンソールに 404 - not found エラーが表示されなくなります。

また、html を jQuery として作成し、SRC ですべての $("img") を設定するか、必要に応じて削除することもできます。

それがあなたがしたいことかどうか教えてください。

編集

どうですか

$("img").removeAttr("src");

編集2

    string html = @"
<h1>
<img src="" ... >
</img>
<img></img>-bad
<img/>-bad
<img src="" ... />
</h1>";
            string result = Regex.Replace(html, @"<img\s[^>]*/>", "", RegexOptions.IgnoreCase);
于 2012-05-15T11:45:08.813 に答える
0

画像の読み込みを停止するには、オブジェクトを作成する前にhtml を変更する必要がありjQuery( html )ます。そのためにもjqueryを使用できます。

var newhtml = html.replace('src=','nosrc=');
jQuery( newhtml ).find( 'p' ).each( function( index, element ) {
    // do stuff
});
于 2012-05-15T12:08:13.593 に答える