避免jQuery(pre)加载图片

时间:2012-05-15 11:40:27

标签: javascript jquery

我有一串HTML用作jQuery输入文档。

// 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代码。我将该变量放在jQuery构造函数中,因为我想对该HTML执行操作。

jQuery( html );

此时我收到404错误,因为HTML源代码中的图像是相对的;它们与我在主持人身上的图像不符。

  • 我无法使用jQuery删除src标记,因为我仍然会收到错误
  • 写一些javascript来修改src值是很愚蠢的;这就是我使用jQuery
  • 的原因

所以,再次,我要问的是,是否有一个设置或任何可以避免jQuery加载提供的源中的图像。

谢谢。

2 个答案:

答案 0 :(得分:0)

在你获得html之后 - 将src替换为其他东西()可能是你自己的图片[global url]。 (简单的字符串替换)

这将帮助您不要在控制台中找到404 - 未找到错误。

你也可以将html设为jQuery - 并将所有$(“img”)设置为你的SRC,或者如你所愿将其删除。

告诉我,如果你追求的是什么。

修改

怎么样

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

EDIT2

    string html = @"
<h1>
<img src="" ... >
</img>
<img></img>-bad
<img/>-bad
<img src="" ... />
</h1>";
            string result = Regex.Replace(html, @"<img\s[^>]*/>", "", RegexOptions.IgnoreCase);

答案 1 :(得分:0)

要停止加载图片,您需要在创建jQuery( html )对象之前修改html 。您也可以使用jquery。

var newhtml = html.replace('src=','nosrc=');
jQuery( newhtml ).find( 'p' ).each( function( index, element ) {
    // do stuff
});