2016-09-02 2 views
1

Следующий код JavaScript не запущен в форме iframe, загружаемой на страницу с помощью Internet Explorer. Когда форма загружается за пределы iframe, она работает нормально. Мы сузили проблему до кода ниже, который не работает. Приведенный ниже код позволяет пользователю выбрать текущий год или будущий год в форме. В IE11 и внизу поле выбора пусто, но оно заполняет параметры в Chrome и Firefox. Тем не менее, он работает над Edge.Javascript внутри iframe не работает в Internet Explorer

 <script type="text/javascript"> 
      var $year = new Date().getFullYear() - 2000; 
      var test = ''; 
      if(test > 2000) 
       test = test - 2000; 
      for(var i =0;i<10;i++) { 
       var selected = ""; 
        if(test == '') { 
         if(i == 2) 
         selected = "selected"; 
        } else { 
         if(i+$year == test) 
          selected = "selected"; 
        } 
       document.write("<option value='"+(i+$year)+"' "+ selected +">"+ (i+$year) +"</option>"); 
      } 
      </script> 

ответ

0

У меня есть немного переписанный код для ясности. Вероятно, вы хотите проверить переменную test, и что делать, если что-нибудь это будет делать.

Этот код, похоже, отлично работает в IE11 с предупреждением о том, что если вы тестируете это локально, IE, скорее всего, предупреждает вас и предотвращает запуск скриптов локально.

Это тоже не совсем так, как вы хотите, чтобы добавить элементы выбора (с помощью записи), но я предполагаю, что это технически работает :-)

<select> 
    <script type="text/javascript"> 
    var $year = new Date().getFullYear() - 2000; 
    var test = ''; 

    if(test > 2000) { 
    // This never happens 
    test = test - 2000; 
    } 

    for(var i=0; i<10; i++) { 
    var selected = ""; 

    if(test == '') { 
     // This always happens as test is '' 
     if(i == 2) { selected = "selected"; } 
    } else { 
     // This never happens 
     if(i+$year == test) { selected = "selected"; } 
    } 

    document.write("<option value='"+(i+$year)+"' "+ selected +">"+ (i+$year) +"</option>"); 
    } 
    </script> 
</select> 
Смежные вопросы