Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $(";img/>;).attr(";src";,something).load()在IE中不受支持;9?_Javascript_Jquery_Internet Explorer - Fatal编程技术网

Javascript $(";img/>;).attr(";src";,something).load()在IE中不受支持;9?

Javascript $(";img/>;).attr(";src";,something).load()在IE中不受支持;9?,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,$(' 在这里,我使用$(“”)进行了测试。在IE 7中加载,我得到的是: 当我遇到律师时,我得到以下信息: 无法获取属性“attr”的值:对象为null或未定义 在我的网页中使用时,我得到以下信息: “SCRIPT5007:无法获取属性'slice'的值:对象为null或未定义” jquery.js,第2行字符32039 发生了什么事?(讨厌IE…)在IE中,缓存映像时并不总是触发加载事件。请尝试以下操作: var img = new Image(); img.src = "http://de

$('
在这里,我使用
$(“”)进行了测试。在IE 7中加载
,我得到的是:

当我遇到律师时,我得到以下信息:

无法获取属性“attr”的值:对象为null或未定义

在我的网页中使用时,我得到以下信息:

“SCRIPT5007:无法获取属性'slice'的值:对象为null或未定义”
jquery.js,第2行字符32039


发生了什么事?(讨厌IE…)

在IE中,缓存映像时并不总是触发加载事件。请尝试以下操作:

var img = new Image();
img.src = "http://derek1906.site50.net//navbar/images/pic3.png";
if (img.complete || img.readyState === 4) {
    $("body").html("done");
}
else {
    $(img).on("load error onreadystatechange",function(e){
        if (e.type === "error") {
            $("body").html("Image failed to load.");
        }
        else {
            $("body").html("done");
        }
    });
}
另外,不要忘记等待
DOMReady
事件,否则如果图像加载速度足够快,
$(“body”)
可能还不存在

编辑:


我有一个可以帮助简化图像预加载的插件:

在IE中,缓存图像时并不总是触发加载事件。请尝试以下操作:

var img = new Image();
img.src = "http://derek1906.site50.net//navbar/images/pic3.png";
if (img.complete || img.readyState === 4) {
    $("body").html("done");
}
else {
    $(img).on("load error onreadystatechange",function(e){
        if (e.type === "error") {
            $("body").html("Image failed to load.");
        }
        else {
            $("body").html("done");
        }
    });
}
另外,不要忘记等待
DOMReady
事件,否则如果图像加载速度足够快,
$(“body”)
可能还不存在

编辑:


我有一个插件可以帮助简化图像预加载:

确保加载功能正在执行。我最近处理了这个问题。在IE中,加载功能没有对缓存的图像启动。出于我的目的,我可以通过从不允许图像缓存来解决这个问题。(一个丑陋的解决方案)

例:

改为:

src="loremIpsum.jpg?nocache=" + new Date().getTime()
在这里,“nocache”可以更改为对您有意义的任何内容

从jQuery文档中:

与图像一起使用时加载事件的注意事项

开发人员试图使用
.load()
快捷方式解决的一个常见问题是,在图像(或图像集合)完全加载后执行函数。应注意以下几个已知的注意事项:

  • 它在跨浏览器中无法稳定工作,也不可靠
  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发
  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止触发“

确保正在执行加载函数。我最近处理了这个问题。在IE中,加载函数没有在缓存的图像上启动。出于我的目的,我能够通过从不允许图像缓存来解决这个问题。(一个丑陋的解决方案)

例:

改为:

src="loremIpsum.jpg?nocache=" + new Date().getTime()
在这里,“nocache”可以更改为对您有意义的任何内容

从jQuery文档中:

与图像一起使用时加载事件的注意事项

开发人员试图使用
.load()
快捷方式解决的一个常见问题是,在图像(或图像集合)完全加载后执行函数。应注意以下几个已知的注意事项:

  • 它在跨浏览器中无法稳定工作,也不可靠
  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发
  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止触发“

所以我在jfidde中做了一些快速测试,提取了相关的代码并在ie7-8-9中独立运行。它们都运行得很好。我可以自信地说,并不是这段代码破坏了您的页面

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title> - jsFiddle demo by DerekL</title>
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>
    <script type='text/javascript'>
    $('<img/>').attr('src', "http://derek1906.site50.net//navbar/images/pic3.png").load(function() {
        $("body").html("done");
        $("<img/>").appendTo("body").attr("src","http://derek1906.site50.net//navbar/images/pic3.png");
    });
    </script>
</head>
<body>
    Loading...
</body>
</html>
  • 在源代码中搜索该切片调用。如果试图使用.slice()操作jQuery集合,它将中断。jQuery集合是对象,而不是数组。(这可能是您的问题,也可能不是您的问题)

  • 确保在.load()方法返回后调用任何试图触摸该图像的代码。常见错误是执行以下操作:

    $('<img id="me" />').attr('src', 'my.jpeg')
                        .load( function(){ $(this).appendTo("body"); } );
    alert( $('#me').attr('src') );
    
    $('
  • 如果这是页面上的唯一图像,则上面的脚本可能会失败,因为appendTo()是异步调用的,并且几乎肯定是在以下代码行执行并失败后调用的。请确保从.load()回调运行任何操作该图像的逻辑。(正如您在上面的示例代码中所做的那样)


    如果您粘贴页面源代码的其余部分,我可以看一看!祝您好运!

    因此我在jfidde中进行了一些快速测试,并提取了相关代码并在ie7-8-9中独立运行。它们都运行良好。我可以自信地说,不是这段代码破坏了您的页面

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <title> - jsFiddle demo by DerekL</title>
        <script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>
        <script type='text/javascript'>
        $('<img/>').attr('src', "http://derek1906.site50.net//navbar/images/pic3.png").load(function() {
            $("body").html("done");
            $("<img/>").appendTo("body").attr("src","http://derek1906.site50.net//navbar/images/pic3.png");
        });
        </script>
    </head>
    <body>
        Loading...
    </body>
    </html>
    
  • 在源代码中搜索该切片调用。如果试图使用.slice()操作jQuery集合,它将中断。jQuery集合是对象,而不是数组。(这可能是您的问题,也可能不是您的问题)

  • 确保在.load()方法返回后调用任何试图触摸该图像的代码。常见错误是执行以下操作:

    $('<img id="me" />').attr('src', 'my.jpeg')
                        .load( function(){ $(this).appendTo("body"); } );
    alert( $('#me').attr('src') );
    
    $('
  • 如果这是页面上的唯一图像,则上面的脚本可能会失败,因为appendTo()是异步调用的,并且几乎肯定是在以下代码行执行并失败后调用的。请确保从.load()回调运行任何操作该图像的逻辑。(正如您在上面的示例代码中所做的那样)


    如果您粘贴页面源代码的其余部分,我可以查看一下!祝您好运!

    先添加加载事件,然后设置img'src
    由于ie的运行速度比设置src时快,因此“加载”事件已完成

    新的加载处理程序将在下一次更改时执行

    首先添加加载事件,然后设置img'src
    由于ie的运行速度比设置src时快,因此“加载”事件已完成

    新的加载处理程序将在下一次更改时执行

    以注释而不是答案的形式发布,因为我不确定这是否是问题所在。在IE中,如果我没记错的话,您需要在DOM中添加一个元素,然后才能将事件附加到DOM中。但它可以在Chrome、Firefox上运行……为什么不能在IE中运行?我在IE8中运行了您的小提琴,其工作原理与在Chrome中相同。发布作为评论