2012-03-09 31 views
-3

我建立了一个网站,并且我想询问用户每次访问该网站时是否要显示图像。如果没有,我想不加载它们并没有任何img标签不要在javascript中加载图像

我想这显示该页面,但这个是没有用的,因为页面会被加载

function load_img() { 
if (!confirm("Do you want to load the images on your site?")) { 
    var images = document.getElementsByTagName("img"); 
    var l = images.length; 
    for (var i=0; i<l; i++) { 
     images[0].parentNode.removeChild(images[0]); 
    } 
} 
} 

我需要一些代码,不加载任何img标签时,页面加载, 而不是隐藏或删除图像后,页面加载和显示图像

有人可以帮助我,请与本javascript代码

代码谢谢

+3

帮助或为您做?你试过什么了? – 2012-03-09 07:26:06

+0

我做了下面的代码,但是这个代码是加载页面后,这是我不想: 的window.onload = load_img; (!确认( “吗?你想在您的网站载入图像”)) 功能load_img(){ \t如果{ \t \t VAR图像= document.getElementsByTagName( “IMG”); \t \t var l = images.length; (var i = 0; i lollos90 2012-03-09 07:39:31

+0

最好编辑你的问题,然后编写评论,因为代码格式。 – PiTheNumber 2012-03-09 08:05:12

回答

0

你可以试试jquery:$(“img”)。remove();

+0

这将仍然加载图像,并在他们加载后删除它们,但我不想加载它们从一开始 – lollos90 2012-03-09 07:43:45

+0

如果一个图像有显示:无风格,它不会加载。如果你想删除它们,你可以在它们之前添加这个样式,然后将jQuery应用于删除。 – gabitzish 2012-03-09 07:48:26

+0

是的,但所有会发生在页面加载后的图像和我不想要的,谢谢 – lollos90 2012-03-09 08:22:57

-1

使用jQuery你可以这样做:

if (confirm('Hide images?')) 
{ 
    $('img').remove(); 
} 

没有的jQuery,你必须使用getElemtentsByTag和循环。

+0

确定,但我想不显示图像从一开始,我的意思是当用户被提示,该页面尚未加载并且html代码为空 – lollos90 2012-03-09 07:37:29

+0

尽管在用户确认后它们将被删除,但仍会加载图像。 – Teneff 2012-03-09 07:39:20

+0

我这样做使用: window.onload = load_img; (!确认( “吗?你想在您的网站载入图像”)) 功能load_img(){ \t如果{ \t \t VAR图像= document.getElementsByTagName( “IMG”); \t \t var l = images.length; \t \t为(VAR I = 0; I <升;我++){ \t \t \t图像[0] .parentNode.removeChild(图像[0]); \t \t} \t}} 但 – lollos90 2012-03-09 07:41:50

3

你可以看看lazyload插件jQuery。当插件位于页面的可见区域时,该插件的功能是加载图像。

他们的想法是将原始URL放入图片data-original属性中,并在src属性中放入一些小图像,例如, 1x1的透明GIF这样的:

<img data-original=“img/example.jpg” src=“img/grey.gif” /> 

,然后只要你想仅仅通过更换的src你能够加载的所有图像。

这是一个简单的JavaScript代码,你可以尝试:

window.onload = function() { 
    if(confirm('Images?')) { 
     var img = document.getElementsByTagName('img'); 
     for(i in img) { 
      var original = img[i].getAttribute('data-original'); 
      if(original.length) { 
       img[i].setAttribute('src', original); 
      } 
     } 
    } 
} 
+0

谢谢,但这对我没有用,因为我需要一个代码,当页面加载时不加载任何图像,而不是当页面加载完成时 – lollos90 2012-03-09 08:18:33

+0

@ElieHaber我认为这对你来说很有用,因为除非你点击确认,否则他不会加载任何东西,只是一个虚拟图像grey.gif。但这不适用于背景图像,但可以根据需要手动添加。 – PiTheNumber 2012-03-09 08:34:34

+0

好的,谢谢你... – lollos90 2012-03-09 08:55:13

0

这将是更好地从服务器端解决这个问题!

制作一个带有图像链接的页面的起始页面,另一个链接到没有图像的页面。您可以编写一个服务器端脚本(PHP?)来显示或隐藏图像。简单地删除图像可能会破坏页面设计。同样去除html图片标签也没有办法。怎么样的背景图片,有的在css文件,...

如果你喜欢做的在客户端与您必须删除所有图像,并用JavaScript手动添加的JavaScript。

+0

谢谢你,我觉得这个非常有用,因为我使用php编程在srver端,我会试试这个 – lollos90 2012-03-09 08:21:44

+0

PiTheNumber,我认为解决这个问题在客户端更好,因为很多请求在同一时间页面使服务器处理所有这一切,并放慢他,但在客户端,每个客户端将处理他的代码在他的身边。不对? – lollos90 2012-03-09 08:32:45

+0

你有没有性能问题?如果你有性能问题,我不认为这是由此造成的。我们正在讨论几乎没有内容加载一个静态页面。如果出现问题,您最好处理性能问题。 – PiTheNumber 2012-03-09 09:44:26