为什么我的脚本不会在Internet Explorer 9-10中运行,而是在所有其他测试中运行

时间:2012-12-26 15:29:47

标签: javascript internet-explorer

  

可能重复:
  why wont my script run in internet explorer 9-10, but runs in all others tested(chrome firefox opera)

这是一个基本的幻灯片脚本。我通过jslint运行它,希望它可以找到能解决问题的东西,没有这样的运气。该脚本在我尝试的所有其他浏览器中按预期工作,但它不会用ie(9-10)执行。我希望另一双眼睛会有所帮助。我已经清除了所有jslint错误,我从ie调试器中得不到任何内容。这是脚本的实时测试站点:http://advanceddesignandsolutions.com/test/wip/2niceguys/

在你回答并告诉我我有多吮吸之前请记住,我并不是要求任何人为我做我的工作只是在一个正确的方向上,使脚本在所有浏览器中完美运行除外即。感谢

启用了javascript,我的其他脚本在同一个浏览器和计算机上运行良好。

所以在我用javascript搜索问题后,我发现问题不在于脚本,而在于css。没有确切地指出它在css中的位置,但脚本与css的关闭工作。

解决了问题。通过将定位元素从绝对元素调整为相对元素来解决问题。无法解释为什么修复它,但确实如此。

function fade_out(obj_opacity, obj_name) {
"use strict";
var go;
/*jslint browser:true */

function check_opacity() {
    if (obj_opacity >= 0) {
        obj_opacity = obj_opacity - 0.1;
        document.getElementById(obj_name).style.opacity =  obj_opacity;
    } else {

        clearInterval(go);
        document.getElementById(obj_name).style.opacity = 0;
    }
}

if (obj_opacity > 0) {

    go = setInterval(function () {check_opacity(); }, 100);

}
}


function fade_in(obj_opacity, obj_name) {
"use strict";
var go2;
/*jslint browser:true */


function check_opacity() {
    if (obj_opacity <= 1) {

        obj_opacity = obj_opacity + 0.1;
        document.getElementById(obj_name).style.opacity =  obj_opacity;

    } else {
        clearInterval(go2);
        document.getElementById(obj_name).style.opacity = 1;
    }
}
if (obj_opacity < 1) {
    go2 = setInterval(function () {check_opacity(); }, 100);
}
}



function slide() {
"use strict";


var obj_opacity, index, obj_name, seconds, minutes;


obj_opacity = 1;
index = 3;
obj_name = "image" + index;
seconds = 0;
minutes = 0;



function timing() {
    /*jslint browser:true */

    setInterval(function () {
        seconds = seconds + 1;
        if (seconds === 10) {seconds = 0; }
        if (seconds === 3) {

            fade_out(obj_opacity, "image" + index);

            index = index - 1;

            if (index === 0) {
                index = 3;

                fade_in(0, "image" + index);
                setTimeout(function () {document.getElementById("image3").style.opacity = 1;
                    document.getElementById("image2").style.opacity = 1;
                    document.getElementById("image1").style.opacity = 1; }, 2000);

            }
        }
    }, 1000);

}

timing();
}

1 个答案:

答案 0 :(得分:2)

您有两个<body>代码。其中一个有onload处理程序,一个没有。不同的浏览器对此有不同的反应,有些采用第一种,有些采用最后一种。无论哪种方式,你都应该解决这个问题。

编辑:这是你的来源的开始:

<!DOCTYPE html> 
<!--[if IE 9 ]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html> <!--<![endif]-->
  <head>
    <meta charset="utf-8">
    <meta name="author" content="Advanced Design And Solutions">
    <meta name="description" content="x">
    <meta name="keywords" content="fort myers">
    <link rel="stylesheet" type="text/css" href="form.css">
    <script type="text/javascript" src="scripts/2niceguys.js"></script>
    <title>2 Nice Guys</title>
  </head>
  <body onload="slide()">
    <div id="container">
      <div id="body">
        <html>
          <head>
            <title></title>
          </head>
          <body>
            <div id="banner">
              ...